2013-06-17 3 views
6

new 레드 북에서 나는 Texture Views을 읽고 있습니다. 페이지 (322)에 는 말한다 :텍스쳐 뷰를 사용하는 경우

OpenGL을 사용하면 자신의 형식 및 치수 여러 사이 텍스처, 각각을 하나의 데이터 저장소를 공유 할 수 있습니다.

그것은 하나의 텍스처 소스가 여러 인스턴스에 의해 (이 경우 텍스처보기에) 참조되는 뜻 :

지금, 내 질문은 (텍스처보기를 통해)

?

예를 들어 다른 샘플러와 같은 텍스처 개체를 사용하는 것과 다른 점은 무엇입니까? 또한

, 그것은 텍스처보기를 통해 텍스처 픽셀을 변경하면 원래 질감 객체의 픽셀을 변경됩니다? (내가 대답은 긍정적이다한다고 가정 doc이는 질감 저장소에 별명입니다 말한대로)

답변

6

의미 하는가 예, 데이터 저장소 공유는 다른 개체에서 동일한 저장소에 액세스하는 것을 의미합니다. 포인터를 공유하는 것은 두 개의 다른 위치에서 동일한 메모리에 액세스 할 수 있음을 의미합니다.

샘플러 개체와 유사성이 없다는 점에서 샘플러 개체를 사용하는 것과 다릅니다. Sampler objects은 샘플링 매개 변수를 저장합니다. 텍스처 오브젝트는 the mipmap range, swizzle mask과 같은 parameters that are not for sampling입니다. 이들은 샘플러 상태가 아닙니다. 텍스처 상태입니다.

텍스처 개체도 specific texture type입니다. 같은 저장 장치의 다른보기에는 different texture types (within limits)이있을 수 있습니다. GL_TEXTURE_2D_ARRAY 텍스처의 단일 레이어보기 인 GL_TEXTURE_2D을 가질 수 있습니다. 12 층 이상의 GL_TEXTURE_2D_ARRAY을 가져 와서 GL_TEXTURE_CUBE_MAP을 만들 수 있습니다.

샘플러 개체는이를 수행 할 수 없습니다.

텍스처 개체에는 저장소를 해석하는 방법을 정의하는 internal format이 있습니다. 같은 저장소의 다른보기에 different formats (within limits) 샘플러는 형식에 영향을주지 않습니다.

샘플러 개체도이를 수행 할 수 없습니다.

샘플러 개체와 동일한 효과를 얻기 위해 텍스처보기를 사용할 수 있습니까? 아닙니다. 샘플러를 사용하면 샘플링 매개 변수를 텍스처 개체에서 분리 할 수 ​​있습니다. 이렇게하면 여러 다른 객체에 대해 동일한 매개 변수 세트를 사용할 수 있습니다. 따라서 하나의 샘플러 오브젝트를 변경하고 각 텍스처로 이동하여 수정하지 않고도 여러 텍스처로 사용할 수 있습니다.

두 가지 다른 기능을 제공합니다.

+0

그래, 지금은 꽤 분명하다.하지만 일단 질문을하지 않았다. 텍스처보기에서 데이터를 변경하면 문장에 따라 참조 텍스처에서 데이터가 변경된다 : "포인터를 공유하는 것은 가능한 것입니다. 서로 다른 두 위치에서 동일한 메모리에 액세스 할 수 있습니다. " 대답은 아마도 "예"일까요? –