小孔投影油画绘制技法-OpenGL光栅化的物理上的原理

在网上看了两篇文章:
https://zhidao.baidu.com/daily/view?id=161790文艺复兴时期油画大师的技法算作弊吗?

https://m.sohu.com/a/433608596_120318370?ivk_sa=1024320u影响世界的重要实验:小孔成像、眼睛成像原理

这就是现代照相机和计算机三维绘图的源头,通过小孔成像把要画的物体投到眼睛前面一块矩形画布或者玻璃上,然后在那描线,怪不得古时候油画像现在照相机一样逼真。

17 18世纪物理学家进行了卓绝的涉及光学,物体的运动学,动力学,空间几何问题的研究,笛卡尔发明了直角坐标系,牛顿提出光的粒子说,还有很多知名科学家研究光学像惠更斯,泊松,菲涅尔,托马斯.杨,光粒子的运动可以通过空间解析几何来精确计算,物理规律的数学描述的发现为后来的计算机器自动绘图扫清了理论障碍,到后来线性代数,矩阵,向量,这些数学工具的发展也一大堆物理学家和数学家接力赛式的天才贡献,才有了我们大学和研究生时代的现性代数,矩阵论这些高级知识。

跨平台图形图像开发使用的OpenGL是一类硬件光栅器,OpenGL的视口 glViewport是叫做 frame buffer的一块矩形的内存,可以理解是个图像Image,如果视口viewport设置800宽,600高,则有800*600个像素要绘制。

OpenGL是建立一个虚拟模型,或者数学模型,物理模型都行,反正是一个叫法,物体是用三角形,直线段,点离散的几何模型,摄像机是小孔成像原理的透视相机,其实和前面讲的画家投射描点法一样,眼睛前面放一块矩形玻璃,有的还会把玻璃画上网格为了定位,眼睛保持不动,在玻璃上描点,我们把这个矩形格子玻璃叫光栅,对于OpenGL的API来说:
glFrustum(float left,float right,float bottom,float top,float near,float far)指定了一个视锥体,gluLookat(vec3 eye,vec3 center,vec3 up)指定了这个锥形相机模型所在的空间坐标系,原点为eye,up为y’轴,-z’轴为从eye指向center,则前面那个视口或者就是那个放在眼睛前面描点的矩形玻璃片在世界空间的位置大小可以由left right bottom top near 和摄像机的坐标系精确计算出来,也叫近裁剪面。

则OpenGL光栅化绘图就对应这样一个物理应用题:
空间物体上p点世界坐标已知的光粒子射向eye形成的光路,计算经过玻璃光栅中的哪个像素q? p距离光栅的距离(深度计算用于隐藏物体)?

当然上面是计算光线投射过程,数学上是个大学高等数学中的空间解析几何问题。
接着就是计算像素q的颜色问题,一般是通过建立光照物理模型来确定的。
OpenGL实际光栅化是将物体的三角形三个顶点投影到光栅上,这样就得到光栅上三角形,然后离散成一组像素,具体是一些比较绕但是能看懂的计算上的细节,要是真实感渲染那就更专业,反正本质都是运动学,力学,光学相关的计算机建模和基于物理的计算,OpenGL这种图形学中实时渲染追求视觉上准确,往往算法层面不是物理上特别准确的但是速度要快,而计算光学用于光学器件制造,物理精确确是前提,和动画影视计算方法和实现路径不一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值