从从头开始构建3D图形所需的程序的最低配置是什么,例如我只有SFML用于处理2D图形,我需要实现可以移动&的相机对象在空格中旋转
从哪里开始以及如何实施 vector3d - > vector2d转换函数和其他必要的东西
我现在拥有的只是: 角度Phi,Xi,epsilon 1-3和我可以使用以下公式在屏幕上绘制的一些对象
x/y = center.x/y + scale.x/y * dot(point[i], epsilon1/epsilon2)
但这种方式我只是转换"world"
轴,而不是对象点
答案 0 :(得分:1)
首先,您需要实现变换矩阵和矢量数学:
其余的取决于你想要实现的渲染类型:
边界多边形网格渲染
这种渲染是当今gfx卡的原生。您需要为:
实现缓冲区它们通常具有与目标渲染区域相同的分辨率。除此之外,您还需要实现支持的基元,至少呈现点,线,三角形。见:
除此之外,你还可以添加纹理,着色器和其他任何你想要的东西......
(返回)光线追踪
这种渲染是非常不同的,当前的gfx HW不是为它构建的。这涉及实现光线/基元交叉点计算,斯涅尔定律和网格的分析表示。这样您还可以进行多光谱渲染和更加物理上准确的效果/过程,请参阅:
2D和3D光线跟踪器之间的区别几乎没有唯一区别在于如何计算垂直向量...
还有不同的渲染方法,如体积渲染,混合方法和其他,但它们的实现通常是面向任务的,通用描述很可能只是误导......我的一些3D射线追踪器: