2013-01-13 4 views
1

VBO가있는 웨이브 프론트 (.obj) 로더를 코딩하고 있습니다.쉐이더 내부의 텍스처 바인딩

"usemtl"이 호출되면 vertex, texCoord 및 일반 데이터와 함께 textureID를 보내려고합니다.

그 텍스처 ID를 사용하면 glBindTexture를 호출하지 않고 정점/조각 쉐이더 내부의 텍스처를 바인딩 할 수 있습니까?

+0

"*"usemtl "이 호출 될 때 *" "usemtl"이란 무엇입니까? –

답변

2

그 텍스처 ID를 사용하면 glBindTexture를 호출하지 않고 정점/조각 셰이더 내부의 텍스처를 바인딩 할 수 있습니까?

아니요. 텍스처는 쉐이더에 바인딩되지 않습니다. 그들은 문맥에 묶여있다.

기술을 얻고 자한다면 NV_bindless_texture은 그러한 기능을 허용하지만 엔비디아에만 해당됩니다.

1

일반적으로 재료에 문제가 있으므로 형상을 렌더링하기 전에 전환해야합니다.

foreach object in renderQueue 
    set_material() 
    draw_geometry() 

하나의 객체가 두 개의 서로 다른 재료로 렌더링되어야 할 때 물론 우리는 몇 가지 문제로 얻을 :

간단한 방법입니다. 또 다른 문제는 성능입니다. 일반적으로 머티리얼별로 객체를 정렬하고 전환 (텍스처, 셰이더 및 기타 데이터)을 저장합니다.

관련 문제