2013-01-04 3 views
3

드로잉 프로그램에서 작업하고 있는데, 일정한 크기를 갖는 THREE.Object3D 요소가 필요합니다. 마치 선이 항상 1 픽셀을가집니다. 즉, 뷰어에게 항상 같은 크기의 객체를 넣으려고합니다 (). 더 가까이 다가 가면 크기가 변경되지 않습니다 (). 비슷한 메커니즘은 THREE.Line입니다. 항상 1px입니다. (또는 다른 모양도 가능)을 만들어야합니다. 어떻게해야할까요?일정한 크기의 Three.js 객체

+0

이 문제를 해결할 수 있었습니까? 그렇다면 어떻게하셨습니까? – Christopher

답변

1

정사각형 카메라를 사용해야하는 것과 같은 소리가납니다.

var camOrtho = new THREE.OrthographicCamera(-width/2, width/2, height/2,-height/2, -100,100); 

"너비"및 "heaight"가 캔버스 크기 인 경우.

일반적인 투시 카메라가 아닌 바로 사용하십시오.

+0

투영은 저에게 문제가되지 않습니다. 투사는 원근감이 있어야한다. 예를 들어 내가 장면에 큐브를 가지고 있다면 투시 투영에서 여전히 그것을보고 싶습니다. 모서리에 동그라미를 추가하고 싶습니다.이 동그라미를 2 차원에 배치하고 싶습니다. 카메라와의 거리에 관계없이 동일한 크기를 갖기를 바랍니다. 정사각형 카메라는이 문제를 해결하지 못합니다. –

+0

앱에 따라 다릅니다. WebGL 또는 캔버스의 세부 사항은 다르지만 두 대의 카메라는 어떻습니까? 원근감 카메라 매트릭스를 사용하여 스크린 공간에서 원의 중심을 계산 한 다음 2d로 전환하고 그립니다. 또는 폴리 스케일을 기반으로 버텍스 쉐이더에서 스케일링을 수행하십시오. 대부분의 사람들은 첫 번째 옵션이 더 쉽다고 생각합니다. 맞춤 셰이더가 필요하지 않기 때문입니다. – bjorke

관련 문제