我写我自己的3D游戏引擎(我花了一年),我想创造我的CPU上运行的光线跟踪(而不是GPU!)减少计算而光线追踪
就目前而言,射线追踪过程如下简化:
- 为每个输出像素投射射线。
- 如果当前射线碰到物体,设置输出像素的颜色为“白色”
- 否则设置为黑色
为了提高光线跟踪器的速度,我添加了一个球形边界框每个实体。如果当前射线与边界框相交,它将运行与实体的每个三角形的相交测试。
我在射线三角交点和射线点距离上使用了最快的方法,但每条射线都必须测试每个可能相交的实体的每个三角形。
因此,使用大约10000多个多边形渲染一个对象(1920x1080)需要5分多钟,我想这不是我想要的。
有什么办法减少我需要检查的三角形数量吗?
问候,芬兰人
你的问题是一个广泛的问题,但我可以给你一些指示。有很多关于光线追踪(计算机视觉)的论文,文章,......。您可以对此主题进行一些研究。有各种各样的方法和方法。 – KarelG
所以你基本上是说有一种方法可以减少多边形的数量,而不是条目的数量。我会试一试:)谢谢 – Luecx
你现在正在进入加速度数据结构,主要是Bounding Volume Hierarchy和K-d树。你可以在这个主题上找到大量关于sciencedirect和ieee上k-d树遍历的研究论文。 –