图像3D旋转问题图像3D旋转可以一点一点实现,但太慢了,有什么好方法?[解决办法]你的输出是动画还是静帧?如
图像3D旋转问题
图像3D旋转可以一点一点实现,但太慢了,有什么好方法?
[解决办法]
你的输出是动画还是静帧?
如果是后者,可以直接使用distort算法:先计算出旋转后的四角坐标,然后进行几何变换即可:遍历当前输出空间的每个坐标,如果在输入的有效区内,则进行几何插值。
如果是前者,建议使用现有的非编软件来完成。
[解决办法]
[解决办法]这种高耗CPU的运算让GPU来做就可以了,直接用openCV、DirectX等库实现就好,不嫌烦直接nvcc编译器上
[解决办法]hello, zzwu, 你居然还在这儿坚持呐, 真有韧性, :-)
这是计算机图像生成当中最典型的纹理texture填充的问题
计算机图形学当中, 三维物体用多边形来表达的方式下
每个顶点都有几何坐标和纹理坐标
拿一个三角形来说,旋转操作通过变换后,投影到屏幕上, 得到了屏幕坐标
在显示的时候, 要根据屏幕坐标对三角形进行像素填充
这个时候纹理坐标就起作用了
三角形光栅化填充是逐个像素进行的,屏幕每个像素点实际上有四个角点坐标的
要反算回到几何空间,获得到对应的原始几何坐标, 这个反算是透视变换,非线性的
反算回去后,得到的几何坐标去计算相对于原始三角形顶点的线性插值系数
利用这个线性插值系数,对三角形顶点的纹理坐标做线性插值
从而得到了屏幕像素点,对应的纹理坐标点
这样,我们得到了一个屏幕像素,对应的纹理空间下的四个边形的顶点坐标了
ps. 这个时候还要算三角形的边界点和旁边相邻三角形之间的关系,又是一笔糊涂账, :-)
现在要做的工作是在纹理空间下,把这个四边形所覆盖的纹理像素(texel)的颜色取平均后,作为屏幕像素的颜色来填充,这个计算就涉及到面积计算了
他的操作和屏幕三角形像素填充算法是类似的,麻烦同样是在四边形边界点附近算面积的问题
简化的做法都是看texel中心在四边形内还是外,在内计算,在外不计算
ps.算平均又是一个除法在这儿
如果从最完美最准确的角度来说,这个屏幕三角形每个顶点的纹理空间坐标反算,以及纹理填充都很耗计算量
实际上三维显卡硬件都做了大量的偷懒工作,但是偷懒到什么程度就各有门道了
纹理计算这块,实际使用较多的方法还是用mipmap方式,这个方面有相关的专业书籍的
这种深入原理的书不多见, 大多都是英文原版的
这个课题当年是偶研究生毕业论文题目呢,呵呵
ps. 偶然上csdn一次, 支持支持zzwu
继续消失.......