shaderCubeMap学习

原理

cubemap是一个1*1*1的正方体,纹理采样时使用三个值uvw采样。采样原理是在cubemap立方体的中心设为原点(0,0,0),然后给入一个uvw作为一个空间向量,从原点指出。无论该向量大小如何,由原点延长到立方体上,获得采样的纹理。
image-1651250163847
一张普通的立方体贴图方向定义如下:
image-1651250220569
下图指某个值为正或负时采样对应的区块
image-1651250344252

语法

Properties部分

使用CUBE标识。

1
_MainTex ("Texture", CUBE) = "white" {}

CGPROGRAM部分

定义

用samplerCUBE定义,和普通sampler2D一样后面带_ST会创建一个缩放偏移参数。

1
2
samplerCUBE _MainTex;
float4 _MainTex_ST;

fragment()函数内

使用texCube

1
fixed4 col = texCUBE(_MainTex, i.uvw);

吐槽:Markdown代码块支持的语言好少,cg和shaderlab这种语言完全不支持。

参考:
https://www.freesion.com/article/43111443972/

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2023 Junto
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信