텍스처를 사용하지 않고 OpenGL에서 색상을 지정하고 싶습니다. Preferrably 정수 색상 코드를 기반으로 객체를 채색하고 싶습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까 (java)?OpenGL에서 텍스처링하지 않고 오브젝트의 색상을 지정하는 방법
-2
A
답변
2
삼각형을 색칠하는 몇 가지 다른 방법이 있습니다. 전통적으로 OpenGL의 기본 색상 지정은 각 꼭지점에 대해 하나의 색상을 지정하는 것이 었습니다. 그러면 기본 색상을 통해 보간됩니다. 조각 쉐이더에서 읽은 균일 한 변수로 색상을 지정할 수도 있습니다. 첫 번째 방법은 더 유연하지만 정점 당 더 많은 데이터가 필요합니다. 유니폼을 통해 색상을 지정하는 것은 모든 객체가 동일한 색상이지만 괜찮은 경우 색상이 다양 할 때 상태가 많이 변경 될 수 있습니다. 정수 색상 코드를 사용하여 지정한 메소드가 둘 사이의 어딘가에 있습니다.
버텍스 당 색상이있는 버텍스 버퍼 객체를 만드는 한 가지 방법이 있습니다. 오랫동안 자바를 작성하지 않았기 때문에 잘못된 구문이 있으면 제 사과합니다. C는 ++) : 당신이 렌더링에 갈 때
다음glBindBuffer(GL_ARRAY_BUFFER, VBO);
ArrayList<vertex> vertexData;
<.....fill vertex data.....>
struct GPUVertex{
GLfloat position[4];
GLfloat color[4];
}
ArrayList<GPUVertex> VBOData = new ArrayList<GPUVertex>(vertexData.size());
for(int i=0; i<vertexData.size(); i++){
VBOData[i].position[0] = vertexData[i].x;
VBOData[i].position[1] = vertexData[i].y;
VBOData[i].position[2] = vertexData[i].z;
VBOData[i].position[3] = 1.0;
VBOData[i].color[*] = ...some color...
}
glBufferData(GL_ARRAY_BUFFER, VBOData.size()*sizeof(GPUVertex), &(VBOData[0]), GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
, 당신이 그림을위한 VBO를 바인딩 할 때 glEnableVertexAttribArray(0/1)
및 glVertexAttribPointer(0/1, 3, GL_UNSIGNED_INT, 24, 0/12)
를 호출해야합니다. 그런 다음, 여분의 layout(location=1) in vec3 vertColor
을 꼭지점 셰이더에 추가하고, 그 결과를 out vec4 fragColor
과 같은 변수를 프래그먼트 셰이더에 전달해야합니다.
GPUVertex
구조
GLfloat color[4]
을 변경
glVertexAttribPointer(...)
,
layout(location=1)...
및
out...fragColor
일치하도록 변경 것, 정수 색상 코드이 방법을 적용합니다.
관련 문제
- 1. 텍스처를 손상시키지 않고 오브젝트의 색상을 변경하십시오.
- 2. 오브젝트의 색상을 감지하고 색상을 변경합니다.
- 3. 번호 색상을 지정하는 방법
- 4. Ruby에서 문자열에 색상을 지정하는 방법
- 5. JavaScript의 geojson에서 색상을 지정하는 방법
- 6. OpenGL에서 3D 큐브 여섯면 색상을 감지하는 방법
- 7. 전체 THREE.Geometry 오브젝트의 색상을 설정하십시오
- 8. glReadPixels는 OpenGL에서 잘못된 색상을 읽습니다.
- 9. html5에서 색상을 선택하여 특정 div에 색상을 지정하는 방법
- 10. 캡슐화를 위반하지 않고 OpenGL에서 변수를 사용하는 방법
- 11. 문자열 값을 기반으로 색상을 지정하는 방법
- 12. 멀티 플롯 제목의 색상을 지정하는 방법
- 13. 메시지 텍스트에 둘 이상의 색상을 지정하는 방법
- 14. graphViz : 노드에 여러 색상을 지정하는 방법
- 15. enableShadowWithOffset을 갖는 CCLabelTTF의 색상을 지정하는 방법
- 16. NSSlider에서 노브 왼쪽 부분의 색상을 지정하는 방법
- 17. Netbeans에서 .htaccess 파일의 색상을 지정하는 방법
- 18. 각 동영상 클립의 색상을 연속으로 지정하는 방법
- 19. JTable에서 특정 행의 색상을 지정하는 방법
- 20. Android TrafficStats - 색상을 지정하여 스레드를 지정하는 방법
- 21. vb.net에서 richtextbox의 여러 텍스트에 색상을 지정하는 방법
- 22. 사각형 내부에서 색상을 지정하는 방법 캔버스
- 23. 호버 효과에 임의로 색상을 지정하는 방법
- 24. CSS에서 배경 텍스트 사각형 색상을 지정하는 방법
- 25. datarow에 색상을 지정하는 방법은 무엇입니까?
- 26. Actionscript 3에서 문장이있는 경우 오브젝트의 색상을 확인하십시오.
- 27. 플렉스에서 오브젝트의 다른 그라디언트 색상을 그립니다.
- 28. directx/opengl에서 RGB 색상을 어떻게 intepret해야합니까?
- 29. OpenGL에서 색상을 임의로 변경하는 방법은 무엇입니까?
- 30. glColor4f를 사용한 후에 OpenGL에서 색상을 다시 설정하는 방법