2014-02-21 3 views
1

입니다. assimp를 사용하여 파일의 일부 장면/객체를로드 중이며 이전에 올바르게 표시했습니다.하지만 내 MVP 행렬 설정을 다시 작성했습니다 (몹시 작성되어 이해하기 어려웠습니다).).정점 버퍼 객체가 렌더되지 않습니다. 다른 프리미티브는

이제 표준 렌더링 파이프 라인에 그려주는 대부분의 프리미티브가 잘 보입니다. 나는 원점을 중심으로 와이어 프레임 큐브를 가지고 있으며 삼각형도 넣을 수 있습니다. 그러나 내가하는 일과 상관없이, ASSIMP가로드 된 객체는 와이어 프레임이나 솔리드처럼 렌더링되지 않습니다.

나는 실수를 저질렀다고 생각합니다. I've tried to reduce the code to a minimal example.

개체는 바위 모양이어야하며 와이어 프레임 상자에 나타나야합니다.

메쉬 코드가 많이 변경되지 않았으므로 scene.h 또는 main.cpp에 문제가 있다고 생각합니다.

이전 버전에는 GLSL 프로그램이 있지만 여기에서는 모든 언급을 삭제했습니다. OpenGL Superbible에서 얻은 나의 이해는 셰이더가 필요 없다는 것이다. 그래서 그럴 수는 없지, 그렇지?

답변

2

이전 버전에는 GLSL 프로그램이 있지만 여기에서는 모든 언급을 삭제했습니다. OpenGL Superbible에서 얻은 나의 이해는 셰이더가 필요 없다는 것이다.

glVertexAttribPointer()을 통해 일반 정점 속성을 사용하려는 경우입니다. 셰이더가 없으면 OpenGL은 애트리뷰트를 알 수있는 방법이 없습니다. 0은 버텍스이거나 1은 텍스처 좌표를 포함합니다.

셰이더를 사용하지 않으려는 경우 glVertexPointer() 및 친구들을 사용하십시오.

+0

'glVertexPointer()'는 법선을 아직 사용할 준비가되어 있지 않은데도 저장할 수 있습니까? 아니면 내 데이터를 레이아웃 한 것처럼 셰이더를 사용해야합니까? –

+0

아니요, 'glVertexPointer()'는 법선이 아닌 정점 위치입니다. ['glNormalPointer()'] (http://www.opengl.org/sdk/docs/man2/xhtml/glNormalPointer.xml)은 법선입니다. 'GL_NORMAL_ARRAY' [클라이언트 상태] (http://www.opengl.org/sdk/docs/man2/xhtml/glEnableClientState.xml)를 활성화하지 않으면 OpenGL은 법선을 읽지 않습니다. – genpfault

관련 문제