2013-04-05 41 views
5

Tôi muốn lấy id của phần tử canvas được tạo tự động bởi ba.js.id phần ba ba.js của phần tử canvas được sử dụng cho webgl renderer

Cách khác, tôi sẽ không kém phần hạnh phúc (có lẽ nhiều hơn thế) với khả năng truyền cùng với id phần tử canvas có sẵn từ trước trong quá trình xây dựng.

Sau khi nghiên cứu, tôi đã cố gắng này:

renderer = new THREE.WebGLRenderer({ canvas: my_canvas }); 

nhưng không thành công (nó là từ một build khá cũ, nhưng đã hy vọng nó sẽ làm việc). Có lẽ một số cú pháp tham số đã thay đổi kể từ 2 năm trước?

(my_canvas là id của vải, cũng đã cố gắng đi dọc theo bối cảnh, không có may mắn)

Cuối cùng tôi đã cố gắng:

document.getElementsByTagName('canvas'); 

mà trở lại không có gì ... đó là một puzzler và proverbial straw dẫn tôi tới đây.

Bất kỳ thông tin chi tiết nào được đánh giá cao, cảm ơn! (Tôi hiện có quyền biểu quyết)

+1

Sử dụng 'renderer.domElement' để lấy phần tử DOM tương ứng với canvas được tạo bởi trình kết xuất đồ họa. – Popov

+1

Ngoài ra, bạn có thể chuyển canvas đến WebGLRenderer, xem tại đây: http://mrdoob.github.com/three.js/docs/57/#Reference/Renderers/WebGLRenderer => có vẻ như đó là những gì bạn đã làm, theo doc (và mã nguồn) nó sẽ hoạt động – Popov

+0

chấp nhận một câu trả lời bắt đầu. – BuildingJarl

Trả lời

15
var canvas = document.getElementById("canvasID"); 
renderer = new THREE.WebGLRenderer({ canvas: canvas }); 
4

Nếu bạn xem bản phát hành mới nhất (r57) trong ba.js/src/renderers/WebGLRenderer.js (ở đầu tệp), bạn có thể thấy rằng bạn có thể thực sự vượt qua đối số canvas cho trình kết xuất đồ họa. Nếu bạn không vượt qua một, sau đó một được tạo ra cho bạn. Bạn có lẽ sẽ cần phải đăng một số mã mà không hoạt động hoặc tốt hơn nhưng một jsfiddle vì vậy chúng tôi có thể xem xét vấn đề.