나는 버텍스 쉐이더가 실행될 때마다 기본적으로 그려지는 버퍼 (VBO)의 일부에 접근한다는 것을 알고있다. 예를 들어 버텍스 번호 7을 그리면 기본적으로 버텍스 애트리뷰트를 기반으로 VBO에 7 개의 버텍스를 인덱싱한다.OpenGL에서 버텍스 쉐이더에서 드로잉하는 버퍼에 액세스 할 수 있습니까?
layout (location = 0) in vec3 position;
layout (location = 1) in vec3 normal;
layout (location = 2) in vec3 texCoords; // This may be running on the 7th vertex for example.
는 내가 뭘 원하는 예를 들어, VBO의 이전 부분에 액세스 할 수 있습니다, 그래서 7 정점을 그리기 때 나는 보간 할 수 있도록, 예를 들어 정점 번호 1에 대한 액세스 권한을 가지고 싶습니다 그것으로.
이미 셰이더를 실행할 때 이미 VBO에 인덱싱되어있는 것을 볼 때 이것이 가능하다고 생각하지만 어떻게해야할지 모르겠다.
감사합니다.
vbo를 ssbo로 바인딩하고 쉐이더에서 액세스 할 수는 있지만 이것은 실제적인 것이 아닙니다. 질문의 범위가 더 넓습니까? 달성하고자하는 것은 무엇입니까? – pleluron
@pleluron 지형을 나타내는 커다란 정점 격자를 가지고 있고, 많은 정점은 모서리 타겟으로 그리드에 다른 정점을 가지고있어서 보간되는 모프 타겟으로 디테일 전환 레벨이 매끄 럽습니다. 현재 vertex 속성 레이아웃을 위치, morphTargPosition, normal, morphTargNormal, texCoords, morphTargCoords - 기본적으로 두 배로 늘 렸습니다. 실제로 생각보다 잘 작동하지만 분명히 이런 공간 낭비입니다. – Zebrafish