კომპიუტერული გრაფიკა: რა განსხვავებაა Vertex Shaders- სა და Pixel Shaders- ს შორის?


პასუხი 1:

გრაფიკული მილსადენი

ვერტექსის შადერი

  • პროგრამები, რომლებიც მიდიან მილსადენის დასაწყისში თითო მწვერვალზე ერთხელ. ვერტიკატების შექმნა ან განადგურება შეუძლებელია. არ ვიცი რა ელემენტს მიეკუთვნებიან.

პიქსელის ჩრდილები

  • პროგრამები მილსადენში გვიან ხორციელდება თითო ფრაგმენტზე. თქვენ ვერ წვდებით სხვა ვერტიკებსა და პიქსელებს. ითვლის opacity, ფერი, z- ღირებულება და ტექსტურის კოორდინატები.

ფენგ ჩრდილში

ფენგ ჩრდილში

თითო პიქსელზე;

Phong ასახვის მოდელი

  • თითოეულ მწვერვალზე გადააკეთეთ პოზიცია და ნორმალები ობიექტის ადგილიდან სივრცეში. თითოეული პიქსელის ზედაპირის ნორმალების ინტერპოლაცია და ნორმალიზება და დაამატეთ სხვადასხვა განათების კომპონენტები (გარემო + დიფუზია + სპეკულაცია), რათა გამოვთვალოთ საბოლოო პიქსელის ფერი.

OpenGL გაკვეთილები

განსხვავებული vec3 N; განსხვავებული vec3 v; void main (ბათილი) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = ნორმალიზება (gl_NormalMatrix * gl_Normal); gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex; }
განსხვავებული vec3 N; განსხვავებული vec3 v; void main (ბათილად) {vec3 L = ნორმალიზება (gl_LightSource [0] .პოზიცია.xyz - v); vec3 E = ნორმალიზება (-v); vec3 R = ნორმალიზება (-რეკლამა (L, N)); // ambient vec4 Iamb = gl_FrontLightProduct [0] .ambient; // დიფუზური vec4 Idiff = gl_FrontLightProduct [0] .diffuse * max (წერტილი (N, L), 0.0); Idiff = სამაგრი (Idiff, 0.0, 1.0); // სპეკულარული vec4 Ispec = gl_FrontLightProduct [0]. სპეციფიკური * სიმძლავრე (მაქსიმუმი (წერტილი (R, E), 0.0), 0.3), 0.3 * gl_FrontMaterial.shininess); Ispec = სამაგრი (Ispec, 0.0, 1.0); // საერთო ფერი gl_FragColor = gl_FrontLightModelProduct.sceneColor + Iamb + Idiff + Ispec; }

პასუხი 2:

რა არის vertex shader?

ვერტექსის შადერი

გაითვალისწინეთ, რომ shader tessellation და გეომეტრია არჩევითია.

ვერტექსის ჩრდილის შეყვანა

ატრიბუტები

უნიფორმები

წაიკითხეთ მხოლოდ

პოზიციები, ნორმალები და ულტრაიისფერი კოორდინატები

სულ

ვერტექსის ჩრდილის გამოცემები

gl_position

წაიკითხეთ მხოლოდ

განსხვავდება / გარეთ

ატრიბუტები

განსხვავდება / გარეთ

ერთიანი

რა არის ფრაგმენტის shader (ასევე ცნობილია როგორც pixel shader)?

ერთიანი

რასტერიზატორი

შეყვანა ფრაგმენტ ჩრდილში

წვეულება

ტესტელაცია

გეომეტრია shader

უბრალოდ

განსხვავდება / გარეთ

  • ტექსტურის კოორდინატები: გამოიყენება როგორც ერთ – ერთი პარამეტრი ტექსტურაში () ფუნქციით. Per-vertex ასახვის ვექტორები: გამოიყენება გარემოს რუქებში, კუბის რუქებში, ან ოპერაციებში ასახვის მიზნით. Per-vertex რეფრაქციის ვექტორები: გამოიყენება კუბურ დავალებებზე ან ოპერაციებზე რეფრაქციებით.მომეტრიული გეომეტრიული კოორდინატები მოდელში ან ხედვის კოორდინატებში. სინათლის ინტენსივობა: გამოიყენება სცენაზე apex განათებით. დისტანციური ვექტორები ვერტიკებიდან სინათლის წყაროებამდე: გამოიყენება წერტილის განათებისთვის / Phong დაჩრდილვისთვის.

ფრაგმენტის ჩრდილის გამოცემა

vec4

გრაფიკული Shaders: თეორია და პრაქტიკა, მეორე გამოცემა: მაიკ ბეილი, სტივ კანინგემი: 9781568814346: Amazon.com: წიგნები


პასუხი 3:

რა არის vertex shader?

ვერტექსის შადერი

გაითვალისწინეთ, რომ shader tessellation და გეომეტრია არჩევითია.

ვერტექსის ჩრდილის შეყვანა

ატრიბუტები

უნიფორმები

წაიკითხეთ მხოლოდ

პოზიციები, ნორმალები და ულტრაიისფერი კოორდინატები

სულ

ვერტექსის ჩრდილის გამოცემები

gl_position

წაიკითხეთ მხოლოდ

განსხვავდება / გარეთ

ატრიბუტები

განსხვავდება / გარეთ

ერთიანი

რა არის ფრაგმენტის shader (ასევე ცნობილია როგორც pixel shader)?

ერთიანი

რასტერიზატორი

შეყვანა ფრაგმენტ ჩრდილში

წვეულება

ტესტელაცია

გეომეტრია shader

უბრალოდ

განსხვავდება / გარეთ

  • ტექსტურის კოორდინატები: გამოიყენება როგორც ერთ – ერთი პარამეტრი ტექსტურაში () ფუნქციით. Per-vertex ასახვის ვექტორები: გამოიყენება გარემოს რუქებში, კუბის რუქებში, ან ოპერაციებში ასახვის მიზნით. Per-vertex რეფრაქციის ვექტორები: გამოიყენება კუბურ დავალებებზე ან ოპერაციებზე რეფრაქციებით.მომეტრიული გეომეტრიული კოორდინატები მოდელში ან ხედვის კოორდინატებში. სინათლის ინტენსივობა: გამოიყენება სცენაზე apex განათებით. დისტანციური ვექტორები ვერტიკებიდან სინათლის წყაროებამდე: გამოიყენება წერტილის განათებისთვის / Phong დაჩრდილვისთვის.

ფრაგმენტის ჩრდილის გამოცემა

vec4

გრაფიკული Shaders: თეორია და პრაქტიკა, მეორე გამოცემა: მაიკ ბეილი, სტივ კანინგემი: 9781568814346: Amazon.com: წიგნები