문제

내가 만드는 HTML5canvas3D 렌더러,그리고 말을 했는데 꽤 멀리의 도움없이,그래서 그러나 나로 showstopper 의 종류.나를 구현하기 위해 노력하고면에는 컬링에 큐브의 도움으로 어떤 법선을 계산합니다.또한,나는 태그이 WebGL,이는 충분한 일반적인 질문에는 적용할 수 있는 내용 케이스와 3D-가속된 하나입니다.

른 속도로 회전하는 큐브,내가 찾는 잘못된 얼굴은 숨겨져 있습니다.예제:

Backface Culling Issue on a Cube

내가 사용하여 다음과 같은 꼭지점:https://developer.mozilla.org/en/WebGL/Creating_3D_objects_using_WebGL#Define_the_positions_of_the_cube%27s_vertices

일반 절차는 내가 사용:

  1. Create 변화 행렬에 의해 변형 큐브의 정점

  2. 에 대한 각각의 얼굴,그리고 각 지점에 대한 각각의 얼굴에,나는 이러한 변환 vec3s,andn 곱하여 그들을 매트릭스에서 만든 단계 1.

  3. 나는 다음의 표면의 정상적인 사용하여 얼굴 뉴웰의 방법은 다음 얻을 dot-제품에서는 정상 및 일부는 만든 vec3,예를 들어,[-1,1,1]때문에,나는 생각하지 못했는 좋은 값을 넣어서 여기입니다.본 일부 사람들은 사용자의 카메라 이를 위해,하지만...

  4. 를 건너뛰는 일반적인 단계의 카메라를 사용하여 매트릭스 당 x 와 y 값에서 결과 벡터를 보내기 내선 및 얼굴을 렌더러하지만,경우에만 그들은 dot-는 제품 위 0.나는 그것을 깨닫는다 오히려 임의의 사람 나는 정말입니다.

나는 두 가지;는 경우 내에서 절차를 3 단계는 올바른(그것을 가능성이 높지 않는)경우에는 순서는 점을 나 그림에 얼굴은 잘못된 것입(가능성이 매우).후자의 경우,사실 나는 어떻게 시각화하는 문제입니다.본 사람들이 말하는 법선되지 않 관련는 그것의 방향 선이 그려지지만...그것은 나를 위해 힘을 내는 경우,또는 그 원본의 문제입니다.

그것은 아마도 중요하지 않지만,매트릭스 라이브러리 사용하는 gl-매트릭스:

https://github.com/toji/gl-matrix

또한,특정 파일에 오픈 소스 코드베이스 내용은 여기:

http://code.google.com/p/nanoblok/source/browse/nb11/app/render.js

사전에 감사합니다!

도움이 되었습니까?

해결책

지 않았을 검토하는 전체 시스템,그러나"만든 vec3"해야 되지 않는 임의의;그것은"화면에서"벡터(부터 귀하의 프로젝션⟨x, y, z⟩ → ⟨x, y종류)를 하나⟨0,0,-1 종류 또는⟨0,0,1 개의 종류에 따라 좌표계의 손잡고 화면의 축이 있습니다.당신 없는 명시적"매트릭스 카메라"(는 일반적으로 매트릭스 보기)하지만,카메라(보고 프로젝션)는 암시적으로 정의하는 4 단계로 투사!

그러나 이 방법은 작동에 대한 직교 예측,지 관점들(고려면 화면의 왼쪽에 직면하고,오른쪽으로 보고 병행하 뷰 방향으로;점 제품의 것 0 하지만 그것은 볼 수 있어야).일반적인 접근에서 이용되는 실제 3D 하드웨어는 먼저의 모든 변환을 포함하여(프로젝션),그때는지 여부를 확인 결과 2D 삼각형은 반 시계 방향 또는 시계 방향으로 부상하고 유지 또는 삭제에 따라하는 상태입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top