2013-10-24 15 views
5

Tôi muốn lấy mã ba.js và có thể chuyển đổi thành mã webGL hoặc mã OpenGL tốt hơn để tôi có thể sử dụng nó trong một chương trình độc lập mà tôi đang phát triển bằng Python. Có cách nào đơn giản để làm điều đó không?three.js vào webGL để OpenGL

Trả lời

3

Theo như tôi biết không có cách nào dễ dàng.

Mặc dù nếu bạn biết OpenGL, trong đó "biết" là khi bạn có thể làm khá nhiều bất kỳ công việc, từ render một số lượng lớn các đỉnh để thực hiện texturing, ánh sáng và lập bản đồ bóng vv

Sau đó, bạn có thể đơn giản đi đến bất kỳ ứng dụng WebGL nào của Three.js og.

Đây là ứng dụng Three.js làm ví dụ.

Sau đó, bạn chỉ có thể xem mã nguồn của/WebGL kịch bản Three.js. Nơi bạn tự động có thể hiểu được phần lớn của nó. Như.

var geometry = new THREE.CubeGeometry(100, 200, 300); 

Chúng ta có thể dễ dàng giả định mã ở trên sẽ tạo khối 3D ở vị trí (100, 200, 300) = (width, height, length). Bây giờ chúng ta biết rằng chúng ta cần tạo một VAO và/hoặc VBO mới mà chúng ta sẽ tính toán các đỉnh, và như chúng ta có thể thấy trong ví dụ khối lập phương được kết cấu, vì vậy chúng ta biết rằng chúng ta cần lưu trữ cả hai đỉnh và tọa độ kết cấu bên trong đệm.

Về cơ bản, bạn có thể đọc qua mọi thứ như thế. Dưới đây là một số ví dụ.

renderer.setSize(window.innerWidth, window.innerHeight); 

Điều đó tất nhiên sẽ đặt kích thước của màn hình.

Ngoài ra Three.js chỉ là một thư viện JavaScript được xây dựng trên đầu trang của WebGL.

+0

Tuyệt vời. Có bất kỳ thư viện nào ở trên cùng của OpenGL (tương tự như ba.js) khiến mọi người dễ dàng hơn đối với các lập trình viên OpenGL không? Tôi chỉ không muốn dành nhiều thời gian để làm mọi thứ trong máy bay OpenGL. Hình ảnh 3D của kết quả của tôi chỉ là 20% của toàn bộ dự án của tôi và tôi muốn sử dụng một số thư viện để thay thế. – MostafaMV

+0

Tôi không thực sự làm theo những gì bạn có nghĩa là, bạn có thể giải thích nó tốt hơn? – Vallentin

+0

hoặc cũng có, có rất nhiều trình bao bọc OpenGL và các thư viện tiện ích. Mặc dù tôi không hiểu những gì bạn có ý nghĩa với "Tôi chỉ không muốn dành nhiều thời gian để làm những việc trong máy bay OpenGL"? Vâng, nếu bạn không muốn sử dụng OpenGL để render thì hãy thử sử dụng cái gì khác mà tôi đoán. – Vallentin