Đồ họa máy tính: Sự khác biệt giữa các shader đỉnh và shader pixel là gì?


Câu trả lời 1:

Đường ống đồ họa

Máy cạo râu Vertex

  • Các chương trình được thực hiện một lần trên mỗi đỉnh, vào đầu đường ống. Không thể tạo hoặc hủy các đỉnh. Không biết nó thuộc về nguyên thủy nào.

Pixel shader

  • Các chương trình được thực hiện một lần trên mỗi phân đoạn, vào cuối đường ống. Không thể truy cập các đỉnh hoặc pixel khác. Tính toán độ mờ, màu sắc, giá trị z, tọa độ kết cấu.

Phong Shading

Phong shading

mỗi pixel;

Phong phản chiếu mô hình

  • Ở mọi đỉnh, biến đổi vị trí và bình thường từ không gian đối tượng sang không gian thế giới. Mỗi pixel, nội suy và chuẩn hóa bề mặt bình thường và tổng hợp các thành phần ánh sáng khác nhau (ambient + diffuse + specular) để tính màu pixel cuối cùng.

Hướng dẫn về OpenGL

thay đổi vec3 N; thay đổi vec3 v; void main (void) {v = vec3 (gl_ModelViewMatrix * gl_Vertex); N = normalize (gl_N normalMatrix * gl_N normal); gl_Pocation = gl_ModelViewProjectionMatrix * gl_Vertex; }
thay đổi vec3 N; thay đổi vec3 v; void main (void) {vec3 L = normalize (gl_LightSource [0] .poseition.xyz - v); vec3 E = bình thường hóa (-v); vec3 R = chuẩn hóa (-reflect (L, N)); // ambient vec4 Iamb = gl_FrontLightSản phẩm [0] .ambient; // khuếch tán vec4 Idiff = gl_FrontLightSản phẩm [0] .diffuse * max (dot (N, L), 0.0); Idiff = kẹp (Idiff, 0.0, 1.0); // specular vec4 Ispec = gl_FrontLightSản phẩm [0] .specular * pow (max (dot (R, E), 0.0), 0.3 * gl_FrontM vật liệu.shininess); Ispec = kẹp (Ispec, 0,0, 1,0); // tổng màu gl_FragColor = gl_FrontLightModel SẢNt.sceneColor + Iamb + Idiff + Ispec; }

Câu trả lời 2:

Vertex Shader là gì?

Vertex Shader

Hãy nhớ rằng các shader Tessname và Geometry là tùy chọn.

Đầu vào của Vertex Shader

Thuộc tính

Đồng phục

Chỉ đọc

vị trí, quy tắc và tọa độ uv

TẤT CẢ

Đầu ra của Vertex Shader

gl_P vị trí

Chỉ đọc

thay đổi / ra

Thuộc tính

thay đổi / ra

Đồng phục

Fragment Shader (hay còn gọi là Pixel Shader) là gì?

Đồng phục

rasterizer

Đầu vào cho một mảnh Shader

Đỉnh

Tessname

Shader hình học

bằng phẳng

thay đổi / ra

  • Các tọa độ kết cấu: Được sử dụng như một trong các tham số trong hàm texture () .Per-Vertex Reflection vectơ: Được sử dụng trong ánh xạ môi trường, ánh xạ khối hoặc bất kỳ hoạt động nào liên quan đến sự phản xạ. .Geometric tọa độ trong mô hình hoặc tọa độ xem. Cường độ ánh sáng: Được sử dụng trong các cảnh sử dụng ánh sáng trên mỗi đỉnh. Các vectơ từ các đỉnh đến các nguồn sáng: Được sử dụng để chiếu sáng tại chỗ / bóng râm.

Đầu ra của một mảnh Shader

vec4

Đồ họa bóng: Lý thuyết và thực hành, Ấn bản thứ hai: Mike Bailey, Steve Cickyham: Miếng68814346: Amazon.com: Sách


Câu trả lời 3:

Vertex Shader là gì?

Vertex Shader

Hãy nhớ rằng các shader Tessname và Geometry là tùy chọn.

Đầu vào của Vertex Shader

Thuộc tính

Đồng phục

Chỉ đọc

vị trí, quy tắc và tọa độ uv

TẤT CẢ

Đầu ra của Vertex Shader

gl_P vị trí

Chỉ đọc

thay đổi / ra

Thuộc tính

thay đổi / ra

Đồng phục

Fragment Shader (hay còn gọi là Pixel Shader) là gì?

Đồng phục

rasterizer

Đầu vào cho một mảnh Shader

Đỉnh

Tessname

Shader hình học

bằng phẳng

thay đổi / ra

  • Các tọa độ kết cấu: Được sử dụng như một trong các tham số trong hàm texture () .Per-Vertex Reflection vectơ: Được sử dụng trong ánh xạ môi trường, ánh xạ khối hoặc bất kỳ hoạt động nào liên quan đến sự phản xạ. .Geometric tọa độ trong mô hình hoặc tọa độ xem. Cường độ ánh sáng: Được sử dụng trong các cảnh sử dụng ánh sáng trên mỗi đỉnh. Các vectơ từ các đỉnh đến các nguồn sáng: Được sử dụng để chiếu sáng tại chỗ / bóng râm.

Đầu ra của một mảnh Shader

vec4

Đồ họa bóng: Lý thuyết và thực hành, Ấn bản thứ hai: Mike Bailey, Steve Cickyham: Miếng68814346: Amazon.com: Sách