Tôi đã bắt đầu với trình kết xuất WebGL của ThreeJS sau khi thực hiện một số WebGL "thông thường" không có thư viện bổ sung + trình tạo bóng GLSL. Tôi đang cố gắng viết các trình đổ bóng tùy chỉnh ngay trong chương trình ThreeJS của mình và tôi nhận thấy rằng ThreeJS chăm sóc rất nhiều các công cụ chuẩn như phép chiếu và các ma trận mô hình/khung nhìn. vertex shader đơn giản của tôi bây giờ trông như thế này:BaJS thuộc tính đổ bóng được xác định trước/đồng phục
// All of these seem to be predefined:
// vec3 position;
// mat4 projectionMatrix;
// mat4 modelViewMatrix;
// mat3 normalMatrix;
// vec3 normal;
// I added this
varying vec3 vNormal;
void main() {
vNormal = normalMatrix * vec3(normal);
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
}
Câu hỏi của tôi là: Những biến khác (tôi giả sử họ đang đồng phục) được định nghĩa trước cho đỉnh và mảnh shaders rằng tôi có thể sử dụng không? Liệu ThreeJS có hỗ trợ các vectơ ánh sáng/màu sáng không (dĩ nhiên giả sử tôi đã thêm một hoặc nhiều ánh sáng vào cảnh ThreeJS của tôi)?
Cập nhật (ngày 9 tháng 10 năm 2014): Câu hỏi này đã nhận được một vài lượt xem và người dùng Killah đã đề cập rằng câu trả lời hiện tại không dẫn đến giải pháp nữa với phiên bản hiện tại của ba.js. Tôi đã thêm và chấp nhận câu trả lời của riêng tôi, xem câu trả lời dưới đây.
đẹp câu hỏi, '+ 1' –