2
當在金屬中使用SCNProgram時,我們如何將紋理傳遞給片段着色器?我們使用SCNProgram的handleBindingOfBufferNamed嗎?如果是這樣,有人可以提供一個例子嗎?謝謝,如何使用SCNProgram將紋理傳遞給Metal的片段着色器?
當在金屬中使用SCNProgram時,我們如何將紋理傳遞給片段着色器?我們使用SCNProgram的handleBindingOfBufferNamed嗎?如果是這樣,有人可以提供一個例子嗎?謝謝,如何使用SCNProgram將紋理傳遞給Metal的片段着色器?
最簡單的方法是使用SCNMaterialProperty
。你在哪裏設置自定義程序對象相同SCNMaterial
,您可以使用鍵 - 值編碼由參數名稱設定值用於片質地:
[material setProgram:program];
SCNMaterialProperty *materialProperty = [SCNMaterialProperty materialPropertyWithContents:image];
[material setValue:materialProperty forKey:@"fragmentTextureName"];
image
可以是NSImage
或UIImage
,根據您的平臺。圖像將被綁定爲具有相應參數名稱的紋理,並且您可以在自定義片段功能中讀取或採樣該圖像。
你能否提供一個簡短的片段說明如何在片段着色器中使用fragmentTextureName? – Chris