在ps中计算uv坐标的问题摘要

http://www.opengpu.org/forum.php?mod=viewthread&tid=6610

测试在ps中计算uv坐标:
在ps中传入uv坐标,包含viewspace坐标的纹理t1,和生成t1的projectmatrix(这个其实只传了

projectmatrix[0][0]和projectmatrix[1][1])。
通过从vs传入的uv在t1中取出viewspacepos,然后通过下面的代码计算对应的uv
u = viewspacepos.x * projectmatrix[0][0];
v = viewspacepos.y * projectmatrix[1][1];
u /= -viewspacepos.z (使用opengl view matrix)
v /= -viewspacepos.z
u = u * 0.5 + 0.5;
v = 0.5 - v * 0.5;

然后比较手动计算的uv和从vs传入的uv,发现大概有0.04左右的误差。也就是说如果800x600的分辨率

有(32,24)个像素的误差。我想在光栅化中插值会有误差,但是现在这个误差也太大了。各位帮忙

分析下,到底问题出在什么地方。

先用普通做法变换到投影空间再看结果,先调对结果再优化。

先前实用的数据viewspacepos.z有问题
不过改正过后还是有0.001的误差。
比如vs传到ps的uv为(0.111,0.232)
自己计算的为(0.110,0.231)
这个属于正常范围吗?

ps的像素点经过了插值,你这样必然有误差存在呀。。。。

恩,那这个0.001的误差应该是正常的,不应该有这么大的误差

也遇到过这样的情况,我的做法就是加上那个误差值,也就是你说的那个0.001误差,具体原因倒没有


细查。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值