用VC++如何实现球体的Phong模型绘制
用VC应该如何实现三维的球体的绘制呢?因为此前只绘制过平面的图形,所以对三维图形的绘制感到无从下手。难道需要用到OpenGL吗?不用可以吗?还有光源向量和视线向量,应该都...
用VC应该如何实现三维的球体的绘制呢?因为此前只绘制过平面的图形,所以对三维图形的绘制感到无从下手。难道需要用到OpenGL吗?不用可以吗?还有光源向量和视线向量,应该都是三维的吗?那应该如何定义呢?屏幕坐标系只是二维的,需要自己定义坐标系吗?
我感觉这个整体的思路还是不好把握的。根据课本上的知识,求出一个已知点的像素亮度不是太难的事情,关键是这个球体应该如何遍历呢?这个整体的三维球体应该如何实现呢?
以上问题还望高人能够指点迷津,谢谢! 展开
我感觉这个整体的思路还是不好把握的。根据课本上的知识,求出一个已知点的像素亮度不是太难的事情,关键是这个球体应该如何遍历呢?这个整体的三维球体应该如何实现呢?
以上问题还望高人能够指点迷津,谢谢! 展开
1个回答
展开全部
绘制3D图形有两种方法,一种是基于显卡(硬件),另一种是基于CPU(软件)。最终的目标都是求出已知点的像素亮度,只是采用的方式不同。
基于显卡的优点是,速度极快,所以游戏均使用显卡。编程时使用OpenGL或Direct3D。
基于CPU速度就非常慢了。相对于显卡采用的是固定的绘制方式,CPU可以使用任何绘制方式(它也可以模仿显卡的绘制方式)。画质取决于你的算法。
你提出该怎么遍历,这就是计算机图形学研究的重点,不是一两句话可以讲完的。我先告诉你一种显卡中普遍使用的方式:
1)由于球体不好处理,先转换为大量三角面来近似,数量足够看上去就光滑了。
2)描述三角面都是用三维坐标,然后通过一定计算投影到二维。可以使用数学中的三角函数计算得到。
3)投影到2D面上的三角形进行像素填充。同时判定,三角面的前后关系,如果在背面(被遮住了),就不显示。
这些步骤都固化在显卡芯片中,所以使用OpenGL或Direct3D可以省去你写这些算法的时间,当然你也可以选择自己写上面的算法。
有任何问题可以Hi我
基于显卡的优点是,速度极快,所以游戏均使用显卡。编程时使用OpenGL或Direct3D。
基于CPU速度就非常慢了。相对于显卡采用的是固定的绘制方式,CPU可以使用任何绘制方式(它也可以模仿显卡的绘制方式)。画质取决于你的算法。
你提出该怎么遍历,这就是计算机图形学研究的重点,不是一两句话可以讲完的。我先告诉你一种显卡中普遍使用的方式:
1)由于球体不好处理,先转换为大量三角面来近似,数量足够看上去就光滑了。
2)描述三角面都是用三维坐标,然后通过一定计算投影到二维。可以使用数学中的三角函数计算得到。
3)投影到2D面上的三角形进行像素填充。同时判定,三角面的前后关系,如果在背面(被遮住了),就不显示。
这些步骤都固化在显卡芯片中,所以使用OpenGL或Direct3D可以省去你写这些算法的时间,当然你也可以选择自己写上面的算法。
有任何问题可以Hi我
东莞大凡
2024-08-07 广告
2024-08-07 广告
OpenCV标定板是东莞市大凡光学科技有限公司在相机标定中常用的工具。它通常由黑白格点按一定规则排列在平面上组成,如棋盘格或圆形格等。在相机标定时,将标定板置于不同位置和姿态下拍摄图像,利用OpenCV库中的函数检测标定板上的角点或圆心,进...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询