2011-01-08 3 views
2

DrawElements를 한 번만 호출하여 상수를 지정할 수 있는지 궁금했습니다. 저는 VAOs와 VBOs를 사용하고 있습니다. 그래서 모든 vertex에 한 번로드하고 VBO ID를 저장하기 때문에 문제가되지는 않습니다.하지만 그래픽 카드의 일부 메모리를 비울 수 있습니다.상수가있는 glDrawElements

이것은 데이터를로드하는 데 필요한 방법입니다 그래픽으로 :

glBindBuffer(GL_ARRAY_BUFFER,VBO[Grid][Normals]); 
glNormalPointer(GL_FLOAT, sizeof(vector3f), 0); 
glEnableClientState(GL_NORMAL_ARRAY); 

좀 5x5x5 그리드를 지정한 다음 입방 surphace을 만들 인덱스를 사용, 그것은 법선을 처리하고 몇 가지 상수를 사용하는 것이 도움이 많이 아니에요 :)

+2

어떤 종류의 하드웨어를 타겟팅합니까? 균일 한 입력으로 정상을 얻는 버텍스 쉐이더를 사용하지 않을 이유가 있습니까? – Grizzly

+0

항상 대상 OpenGL 버전을 지정하십시오. – Kos

답변

2

사용 기능을 구현 할 수 있습니다 항상 같은 법선을 지정하는 정점 셰이더. 따라서 꼭짓점에 대해 동일하므로 법선을 균일하게 지정해야합니다.

+0

그래, 내가 지금 쉐이더를 사용해야하는 단계가 아니기 때문에 나는 고정 파이프 라인을 사용하고있다. 어쩌면 쉐이더를로드하기위한 코드를 던져서 간단한 쉐이더를 생성하는 것이 더 쉬울 것이다 ... – Raven

+1

예 셰이더로 시작하기 전에 약간의 노력이 있지만 고정 파이프 라인 구현으로 인해 작업하지 않고도 최상의 알고리즘을 구현할 수 있습니다. – Luca

+0

고정 된 파이프 라인 제한 사항을 해결하지 않고도 여러 고정 파이프 라인 기능을 함께 사용하기 시작하면 셰이더를 사용하면 더 쉽게 처리 할 수 ​​있습니다. – Grizzly

관련 문제