簡體   English   中英

GLSL片段着色器中紋理到對象的純映射

[英]Plain mapping of texture to object in GLSL fragment shader

我在片段着色器中映射紋理時遇到問題。 我有一個與窗口大小相同的紋理(我使用前一個渲染中渲染的場景的一部分,但我在下面的示例中使用了磚紋理),我需要將其映射為2D。 它有可能嗎? 我嘗試了不同的方法,但沒有任何效果。

你能告訴我片段着色器應該怎么樣? 請任何建議都有幫助。 謝謝!

帶有普通映射的tepaot

我有一個與窗口大小相同的紋理(...),我需要將其映射為2D模式。

因此,如果我對您的理解正確,那么您想使用先前生成的紋理,就好像它是某種“圖層”一樣,其中紋理像素將1:1映射到視口像素,並且紋理具有與視口相同的大小?

如果是這樣,那么這非常容易(從GLSL版本1.30開始)。 有一個texelFetch函數,它將一個像素索引作為坐標(與采用[0; 1]范圍內的值的texture不同)。 內置變量gl_FragCoord給出當前處理的片段的窗口坐標。 因此,通過將gl_FragCoord的坐標用於texelFetch您可以獲得所需的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM