我一直想要在这个应用程序上工作大约一年。我想创建一个'激光表演模拟器/编辑器'。我希望能够将灯光放置在舞台上的不同位置,我希望能够编写每个灯光的脚本来进行各种操作,例如转动,以一定间隔开启和关闭,改变颜色等。完全是我的意图。我有进一步计划编写一个工具,根据可以检测到的某些信息,根据现有的音频文件(,当然通常是一首歌)轻松同步和组成激光表演例如每分钟节拍等。
我原本打算在C#中使用XNA进行此操作。编辑器当然会包含一些3D视口(也许在Ortho Projection 中),有点像我想的3D建模工具,但更像是一个游戏的关卡设计工具,因为它的数量很多将能够做到这一点将是有限的,如灯光放置和属性编辑。
事情是我之前从未参与过3D编程项目。几年前,我试着学习OpenGL(买了很多书,老老实实地读过它们,但当时我是编程新手,而且事情没有意义。而且,我对数学知之甚少使用)。我也尝试过学习Managed DirectX,虽然看起来确实更有意义,但我想我没有那么积极学习它,所以我放弃了。
现在我实际上有理由去学习它,所以我会有动力,而且我相信我现在会理解大部分数学。
但我不知道从哪里开始。这是我肯定需要一段时间才能完成的事情,所以我知道要有耐心。我想知道你们建议我从哪里开始。音频部分我相信我会留待以后。我想基础知识是渲染引擎和编辑界面,然后是实际的模拟器来播放创建的节目。
由于我无法将所有内容都放在一个问题中,所以当我到达项目的这个区域后,我会提出后续问题。但是,与此同时,我要问的基本一般问题是:
我应该从哪里开始?我从来没有做过这么大的事情,所以我对这个项目的内容很不知所措,我不明白我应该做些什么开始吧。我知道我会首先计划好事情,但至少我会欣赏一下将会开始的事情。我认为它是渲染引擎。
这是一个好主意,还是至少可以使用C#和XNA?我对C#非常熟悉,几年前我确实尝试过学习Managed DirectX我相信有点类似。我熟悉.Net的用户界面创建方面与C#。
我应该创建自己的渲染引擎还是使用现有渲染引擎?你推荐哪一个?我对创建自己的引擎并不感兴趣,这样我才能学习。我相信我最终会明白发生了什么,而且我真的不希望渲染方面成为障碍,特别是如果已经存在的东西比我在不久的将来可以创造的东西更好。当然,我会尝试学习XNA;我不会试图忽略它。
谢谢你们,我非常感谢您提供的任何输入。对不起,如果我很模糊。我对具体细节有所了解,但我现在想问一般问题,给自己一个方向感。再次感谢。
编辑:我想强调一点,从未从头开始研究这样大的事情。我字面上不知道从哪里开始。我从未从事过3D编程,也没有从事编辑工作所需的复杂用户界面。我确实有动力和动力来学习和做任何与编程有关的事情,正如我过去向自己证明的那样,但我很感激你们可以提供的任何细节和具体细节。
例如,有些人说从渲染引擎开始,但你能提供任何细节吗?是否有足够的免费和/或开源引擎?考虑到我正在追求的是什么,我应该考虑哪些3D主题?例如,我读过一些激光可能只是带有着色器的3D网格,或者某些东西,我显然不熟悉3D编程。
至少在不久的将来,我不打算购买渲染引擎等任何东西。如果我这样做,那么一旦我有一个核心/基础,我可以继续工作。
谢谢大家,我非常感谢你能提供的任何见解,除了你们已经做过的事情。
答案 0 :(得分:2)
我对你的项目感兴趣,因为我曾经是一名激光表演设计师和控制软件开发人员。
首先 - 草拟设计!有趣的是,您正在考虑像渲染引擎这样的实现细节,同时仍然被项目的范围所淹没。只需对可以执行任何操作的渲染引擎进行映像。然后,当概念确定并且您了解所需的功能时,您可以购买符合您需求的功能。
如果您不熟悉与激光显示器相关的系统行为和用例,我绝对可以帮到您 - 我会给您发送电子邮件。
答案 1 :(得分:1)
C#和XNA是第一个3D项目的不错选择。您不必编写自己的渲染引擎,这是一个好消息,因为它可能非常耗时。但它缺乏GUI工具。目前还没有简单的方法来制作菜单,文本框,标签等。但是,有一些图书馆可以帮助你。
我建议您查看Audio support以确保所提供的工具(尤其是XACT)足以满足您的目标。
答案 2 :(得分:1)
根据您所需的激光运动控制,USB微控制器可能更符合您的需求。
这是我最喜欢的USB设备之一(伺服控制,电机控制,LED,模拟/数字I / O等):phidgets.com servo kit
跨平台,非常好。例如,将伺服的位置设置为中途我可以调用驱动程序:
servo1.setPosition(50);
因此,将C#与XNA结合使用这些.Net兼容的伺服器,您可以快速获得一些东西!
祝你好运!