首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

象素Shader的有关问题

2012-04-16 
象素Shader的问题!bmp图像中的颜色格式如下(RGBA)0-255Shader中对纹理采样得到的数据是float40-1他们之间

象素Shader的问题!
bmp图像中的颜色格式如下(RGBA)   0-255
Shader中对纹理采样得到的数据是float4     0-1
他们之间转换的公式是怎么样的?

[解决办法]
一般是线性映射的,即0映射成0.0f,255映射成1.0f。 但是我不清楚一些高精度纹理是如何处理的,比如D3DFMT_G16R16。事实上我也很困惑这个问题。
[解决办法]
可以使用其他格式的纹理,比如D3DFMT_R16F,它不会限制为[0,1],可以完美解决你的问题
[解决办法]
unorm8(A8R8G8B8) 转fp32:
f_color = u_color / 255
unorm16 (R16G16)转fp32:
f_color = u_color / 65535
R16F本身就是浮点数,浮点格式是1.5.10,所以也就无所谓转换了,而且shader取得的值也不在0-1 之间

热点排行