C++ 可以在光线跟踪器上看到我的汽车模型的全貌

C++ 可以在光线跟踪器上看到我的汽车模型的全貌,c++,graphics,raytracing,C++,Graphics,Raytracing,我目前有一个光线跟踪器,可以读取.obj模型,然后渲染上面描述的对象。到目前为止,我基本上都在使用.obj模型,其中原点周围的顶点通常比距离的10近,最大值约为100 现在,我下载了一个不同的模型,其中顶点远离原点,始终至少离原点数百个单位,一些顶点在某个轴上距离约5000 问题是,现在我无法集中整个汽车 我的一个测试是从相机到-3639原点的距离。 结果是: 然后我将相机移到-4639,结果是: 改变了我的方法,决定接近它,把相机放在-2639 结果是: 因此,在-2639A,我可以想象

我目前有一个光线跟踪器,可以读取.obj模型,然后渲染上面描述的对象。到目前为止,我基本上都在使用.obj模型,其中原点周围的顶点通常比距离的10近,最大值约为100

现在,我下载了一个不同的模型,其中顶点远离原点,始终至少离原点数百个单位,一些顶点在某个轴上距离约5000

问题是,现在我无法集中整个汽车

我的一个测试是从相机到-3639原点的距离。 结果是:

然后我将相机移到-4639,结果是:

改变了我的方法,决定接近它,把相机放在-2639 结果是:

因此,在-2639A,我可以想象整个汽车,但它不适合在我的视野。在-3669时,由于某种原因,光线已经消失了。 我想,如果使用-2669和-3669之间的中间距离,并对视野值进行试验,可能会看到整辆车被点亮,但在-3669处,灯光没有覆盖整个车,这有点奇怪,我想找出原因


因此,我希望您能提供有关此问题原因的建议,以及在这种情况下如何处理,如何聚焦整个汽车。

您的问题提到您正在更改摄像头位置。但是,这些图像显示了照明区域在各种情况下的变化。在一种情况下只是一个聚光灯,而在另一种情况下更多的汽车被照亮


最有可能的是,在第三种情况下,车上没有任何东西点亮,因此所有东西都显示为黑色。首先,在相机移动时保持灯光不变,然后查看它是否解决了您的问题。

如果移动相机:它可以帮助查看前后剪裁平面的设置

如果不移动摄影机:如果对象较大,则FOV显示会更大。我会避免这样做,因为当您阅读多个不同的对象时,这可能会导致更多问题


我个人会缩放文件中的输入。理想情况下,对于某些有意义的国际单位制单位而言。

如果不知道如何实施相机、灯光、进行灯光计算、边界框,这是不可能回答的。。。基本上你的整个光线跟踪器是如何工作的。如果你把这些都告诉了我们,那么你就需要一般的调试帮助了。光线跟踪器中可能会出现太多问题。我知道,因为我写了一些。S.O.是针对更具体、更集中的问题,这些问题不需要整个应用程序的设计或来源。?。在所有这些示例中,灯光都是静态的。是的,您希望使用静态灯光,但渲染的图像显示了其他内容。第一幅图像显示了类似于锥形光的东西。最后一张图片的顶部有一个扰流板/导流板和类似出租车标志的东西。所以,我打赌你的问题是地点移动(不正确)。弄清楚是什么移动了点,你就有问题了。没有剪切平面。关于比例建议:我可以用一个值来划分所有顶点坐标吗?示例:坐标为10002000800的垂直坐标将变为10,20,8.5。对于一个开始,只需玩转缩放,一个好的开始似乎可以将其缩小10倍。如果你想保持所有坐标以米为单位(例如),并且你知道汽车在现实生活中有多大,你可以找到物体的边界框大小并找到精确的缩放值。如果你不使用前平面和剪裁平面,我想你的光源上有som范围?你的前两张照片暗示了一些与范围相关的事情正在发生。再次尝试渲染第二幅图像,但任何点击都使用白色像素,否则使用黑色像素。完全没有阴影。