嗨,我想开发一个光/激光表演编辑器和模拟器,以及这个过程中,我要学习一些图形编程。我想用C#和XNA。

我只是想知道我应该研究或侧重于给我的工作项目的哪些方面图形编程的。我是新来的图形编程,所以我不很了解,但比如我想象的东西,我可能会考虑将(可能?的)是体积光照。

例如,这将是去有关呈现多样宽度/颜色的“激光”的实用方法?我读的地方,只是画一个圆柱体和应用着色器的话,我想确认,这是这样的。

由于这似乎是一个大的项目,我想通过创建光源,并给他们的属性,这样我可以轻松地操纵它们出发。我曾经(MIS)读取,只有灯光一定量的可以在任何给定的时间进行渲染,我相信八强。这是否仅适用于环境光?鉴于这种可能的限制,而事实上,最让我将用灯光将是方向性的,如头部灯或激光器,这将是一种不同的方式来呈现这些?难道这就是体积光照会是什么?

我只是想获得一些事情说清楚之前,我潜入了。由于我是新来这个我可能没有做的话最好用,所以如果事情没有意义,请让我知道。谢谢,对不起我的无知。

有帮助吗?

解决方案

这个问题的答案取决于你在你的显示器需要模拟的复杂程度。计算机图形是最终的光的传输的模拟;该模拟可以是作为计算激光的由粒子在大气中偏转到观看者的视点,或作为画线作为简单的级分作为复杂的。试用气缸效果,看看它是否适合你的项目。如果你需要一些更复杂的,看看着色器程序设计(采用了NVIDIA的CG,例如),正如你提到的体积阴影;也后处理发光效果可能是有用的。对于OpenGL的,我相信有8个有限制吗?在一个场景中的光源,但你可以想见,做你自己的阴影逻辑解决此限制。

其他提示

那么,如果它只是灯光秀仿真我想像你将需要大量的定制照明效果 - 所以不管你决定使用XNA或直的DirectX您最好的选择是通过学习着色器语言以及如何启动使用它们来编程不同的照明效果。一旦你可以复制你想要激光照明的类型,那么你可以用你想用代表激光器的多边形实验。 (我用在我的一些个人目的,工作缸的方法,但我不知道直缸将如何适合你的目的)。

虽然它的速度更快,我想是因为它的局限性的最好不要用香草五金灯饰。像素着色器可以与你的任务有所帮助。您可能还需要选择,因为便携性和它的渲染方法清晰的OpenGL。我的工作的Direct3D几年切换到OpenGL的了。 OpenGL函数和状态都更容易学习和渲染方法(如多通道渲染)是很多明确的。如果你喜欢在C#(我不推荐这些任务)的代码,你可以使用CSGL库访问OpenGL函数。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top