저는 현재 OpenGL 3.3+와 현대의 쉐이더 기반 렌더링 프로세스를 배우고 있습니다. 지금까지 C#을 사용하여 GLFW 및 OpenGL에 대한 고유 한 바인딩을 만들 수 있었으며 모든 것이 어떻게 작동하는지 꽤 잘 이해하고 있습니다. 나는 처음부터 모든 일을 좋아한다. 왜냐하면 내 프로젝트의 모든 것이 어떻게 작동 하는지를 알고 있기 때문이다.OpenGL 3.3+ - 셰이더, 속성, 유니폼, 인/아웃 변수 - 어떻게, 무엇을, 언제, 왜?
그러나 "스틱"하고 싶지 않은 것은 : 입/출력 변수, 속성 및 유니폼의 차이점은 정확히 무엇입니까? 어떤 것을 사용할 지 어떻게 알 수 있습니까? 저는 OpenGL State-Machine이 어떻게 작동하는지 꽤 잘 이해하고 있다고 생각합니다. 그러나 렌더링 프로세스의이 부분은 거의 자세히 설명되어 있지 않습니다. 대부분의 튜토리얼이나 책에서는 "이것은 쉐이더에 데이터를 전달하는 방법"이라고 말하지만 사용 방법과 가장 중요한 이유를 설명하는 텍스트를 아직 찾지 못한 이유는 무엇입니까?
또한 셰이더와 VBO 사이의 연결에 대한 정보가 더 필요합니다. 나는 그것이 나의 질문과 결합 될 수 있다고 생각한다.
더 구체적으로 질문을 수정하십시오 : 개개인의 특성, 특성, 유니폼 및 버퍼 개체 간의 관계를 자세히 설명하는 소스가 있습니까? 어떻게 작동합니까? 어느 때 사용할 수 있습니까? 무엇을 피해야합니까?
속성들은 정점 당 데이터 조각이다 : 다음 쉐이더 변수 사이
이것은 특히 편집과 관련하여 큰 질문입니다. Attrib/Varying/Uniform과 그 바인딩과의 관계는 GL에 새로 온 사람들을위한 끝없는 실수의 원천입니다. 비버는 이러한 신규 이민자들을 도울 수있는 질 높은 응답을 제공했습니다. 아마도 질문의 중요성을 지키는 것은 규칙에 어긋나지만 ... : S –
@JoshParnell 답장을 보내 주셔서 감사합니다 Josh. 좀 더 구체적으로 내 질문에 다시 말하기 위해 내 의견을 사용 했어도 괜찮 으면 좋겠다. 어쩌면 우리는이 스레드에서이 방법으로 좀 더 답변을 얻을 수 있습니다 :) – j8a2b0e7