114得票1回答
Haskell线程堆溢出,尽管仅使用了22Mb的总内存?

我正在尝试并行化一个光线追踪器。这意味着我有一个非常长的小计算列表。原始程序在特定场景中运行时间为67.98秒,总内存使用量为13MB,生产率为99.2%。 在我的第一次尝试中,我使用了缓冲区大小为50的并行策略parBuffer。我选择parBuffer是因为它只会在消耗火花时才快速遍历列...

60得票1回答
内部映射着色器自阴影

我正在尝试改进Joost van Dongen的内部映射着色器,并尝试实现自阴影。但我还没弄清楚投射阴影光矢量所需的坐标。你可以在这里看到效果有点好的演示。为了观察情况我将光位置与摄像机位置相比加了一个偏移量,但显然这样看起来也不对。着色器代码如下。在片段着色器中查找 SHADOWS DEV。...

47得票1回答
为什么我们使用CPU进行光线追踪而不是GPU?

在研究栅格化和光线追踪方面后,我发现互联网上关于CPU如何用于光线追踪的信息并不多。我读到了一篇关于Pixar如何在CPU上预渲染Cars 2的文章,这需要每帧11.5小时的时间。如果使用同样的图像质量,GPU不会更快地渲染吗? 相关链接:http://gizmodo.com/5813587...

47得票12回答
在基于瓦片的游戏中计算哪些瓦片被点亮("光线追踪")

我正在编写一个基于瓦片的小游戏,想要支持光源。但是我的算法水平有限,因此向您寻求帮助。 情况是这样的:有一个基于瓦片的地图(作为二维数组保存),其中包含一个单一的光源和几个站立的物品。我想计算哪些瓦片被光源照亮,哪些处于阴影中。 以下是一个近似的视觉辅助效果。L代表光源,X代表遮挡光线的物...

41得票6回答
现代OpenGL中如何进行光线追踪?

我现在需要开始给我的单色模型添加光源。测试应用程序是一种仅使用最新方法实现的测试用例,因此我意识到理论上最好实现光线跟踪(因为在未来几年里,它可能是适合实时图形的理想选择)。 但我该从哪里开始呢? 假设我以前从未在旧版OpenGL中进行过光照,因此我将直接采用非废弃的方法。 该应用程序目...

36得票12回答
何时使用结构体?

我正在进行一个兴趣项目——光线追踪器,最初我在我的矢量和射线对象中使用结构体,并且认为光线追踪器是使用它们的完美场景:你创建了数百万个它们,它们的生命周期不超过单个方法,它们很轻便。然而,仅仅将Vector和Ray上的'struct'更改为'class',我得到了非常显著的性能提升。 怎么回...

29得票1回答
光线追踪器材料属性列表

我在上学期为了完成一个作业写了一个光线追踪器,并希望继续进行开发。该作业中有五种材料(用于对象),我们被给定了它们的环境、漫反射、镜面反射和高光值。我很难找到一个包含这些值以创建新材料的清单(其中也包括折射率指数将非常棒),想知道是否有人知道一个好的资源。 到目前为止,这是我找到的最好的一个...

26得票4回答
如何进行射线平面相交?

如何计算射线和平面之间的交点? 代码 这会产生错误的结果。 float denom = normal.dot(ray.direction); if (denom > 0) { float t = -((center - ray.origin).dot(normal)) /...

24得票9回答
优化光线追踪器性能

我正在使用D语言编写一个相对简单的光线跟踪器/路径跟踪器(http://dsource.org/projects/stacy),即使进行了全面优化,仍需要每个光线数千个处理器周期。有没有其他方法可以加速它?更一般地说,您是否知道用于光线跟踪的良好优化/更快方法? 编辑:这是我已经做过的。 ...

24得票4回答
优雅/简洁(特殊情况下)直线网格遍历算法?

我正在整理我的一个旧项目。其中需要做的一件事是,给定一个笛卡尔坐标系和两个正方形,找到连接这两个正方形中心的直线穿过的所有正方形的列表。 特殊情况是所有起始点和结束点都限制在正方形 / 单元格的正中心。 下面是一些示例 - 带有示例起始点和结束点的对。阴影正方形是应由各自的函数调用返回的正...