首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >实时光线跟踪器

实时光线跟踪器
EN

Stack Overflow用户
提问于 2012-05-27 00:36:50
回答 2查看 2K关注 0票数 0

我想用C++做一个基本的实时CPU ray tracer (主要是为了学习建议)。This tutorial非常适合制作基本的光线跟踪器。但是,什么是最好的解决方案,以实时绘制在屏幕上?我不是在问如何优化光线跟踪部分,只是问绘制部分,以便它可以在屏幕上绘制,而不是在文件中绘制。

我正在windows上/为windows进行开发。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-27 00:52:01

您可以使用Win32API在基本的绘制机制上查看this Code Project article

更新: OP需要快速绘图,这是Win32API所不提供的。OP需要这样做,以便他们可以在优化过程中测量光线跟踪算法的加速比。其他可能的绘图是: DirectX,XNA,Allegro,OpenGL。

票数 2
EN

Stack Overflow用户

发布于 2016-04-04 18:10:03

我是一个专业的实时CPU光线跟踪器,从我看到的两年的工作,GPU部分显示图像不会是瓶颈,如果你达到它的瓶颈将是你的RAM的速度,我不认为绘图技术会有任何显着的不同。

例如,我们使用集群(一个CPU是不够的:p),我们能够以1920x1080的速度渲染100-200fps,但瓶颈不是显示部分,而是网络……编辑:我们使用OpenGL来显示。

当你做一个CPU,你不会做printPixelToGPU(),但你会写你的内存,然后在图像完成后将其发送到GPU。做printPixelToGPU()可能会导致很大的开销,而且(在我看来)这是一个非常糟糕的设计选择。

这看起来像是过早的优化。但如果你仍然担心这一点,只需做一个工作台有多少内存纹理到图形处理器传输,你可以做的OpenGL,directX…,并打印平均帧率。您可能会看到帧速率将非常非常高,因此您肯定永远不会达到那个“瓶颈”,除非您使用的是SDRAM或非常差的GPU。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10768034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档