Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该玩3D游戏吗?如果是的话,有多远?有什么好的教程吗?_Java_Graphics_3d - Fatal编程技术网

Java 我应该玩3D游戏吗?如果是的话,有多远?有什么好的教程吗?

Java 我应该玩3D游戏吗?如果是的话,有多远?有什么好的教程吗?,java,graphics,3d,Java,Graphics,3d,我已经做了一段时间的java模拟游戏(用我自己的方式重新制作主题医院)。到目前为止,我已经做了一切在二维,使用正方形和圆形等。 我找了一些关于如何在java中实现3d的教程,找到了coke和代码,但是我不确定这是否是我需要使用的。 我的想法是要么简单的3d,就像平面3d一样。或者真正的3d,这将是更多的工作,更困难。 我真的很想听听人们对3d的一般想法。这是我几个月前进步的视频()。 2d图形不太引人注目。 我想取得一些进展,但我不知道我是否应该继续在2d开发,如果我想最终进入3d 而且,我不知

我已经做了一段时间的java模拟游戏(用我自己的方式重新制作主题医院)。到目前为止,我已经做了一切在二维,使用正方形和圆形等。 我找了一些关于如何在java中实现3d的教程,找到了coke和代码,但是我不确定这是否是我需要使用的。 我的想法是要么简单的3d,就像平面3d一样。或者真正的3d,这将是更多的工作,更困难。 我真的很想听听人们对3d的一般想法。这是我几个月前进步的视频()。 2d图形不太引人注目。 我想取得一些进展,但我不知道我是否应该继续在2d开发,如果我想最终进入3d

而且,我不知道3d有多困难。理想情况下,我希望三维完全旋转。我知道这是相当雄心勃勃的,但我会满足于块状的人和物品,而不是圆形和方形。有谁知道java教程中的任何好3d,包括旋转

对此还有其他想法或意见吗


谢谢

使用3D将使内容制作成本提高7倍。(很抱歉,无法参考该研究,但韩国国家软件公司对此进行了调查,并报告增长了7倍)。这是因为创建可行、高效和美观的资产需要多种技能。所以,记住这一点。许多人认为,转向3D将神奇地让他们的游戏“看起来更好”。这是一种谬论。只有当资产足够好,能够创造出比以前更好的沉浸感时,它才会看起来更好

停留在2D空间会给你很多自由。你真的可以创造一种艺术风格,专注于游戏,等等。一旦你进入3D,你将花费大部分时间优化客户端,而不是制作更好的游戏

所以,最终,决定权归你,我们无法为你做出决定

如果你决定使用3D,你需要决定你的目标是什么。如果只是为了创建游戏,那么您可能需要研究一个引擎来减少开发。如果您想了解3D图形的基本机制,请直接使用JOGL或LWJGL访问OpenGL

需要调查的一些发动机:

  • jMonkeyEngine(我在这里有偏见)
  • Ardor3D
  • jPCT

祝你好运。

如果你要做3D,你几乎肯定最好使用OpenGL之类的工具(例如通过JOGL)。在这种情况下,您基本上是在三维空间中描述对象(例如,墙的位置和颜色、灯光的位置和颜色等),然后指定当前“摄影机”位置。旋转(通常)通过简单地为摄影机指定不同的方向来处理


学习OpenGL API并不是一件小事,但很可能您担心的是错误的事情——例如,完整的3D旋转相当简单。创建真实的照明(特别是如果您想包含阴影)需要做更多的工作

主题医院-美好回忆:)

如果这是一个学习项目,我肯定会从2D开始。你将完成更多的工作,并且更快地完成一场有效的游戏。在这个阶段添加3D只会增加复杂性

另外,主题医院在3D中看起来会很怪异

使用

我不认为需要“真正的3D”来重现主题医院的外观。您只需要为每个方向(如果希望用户从原始视图中的4个查看方向中进行选择)和每个对象创建一个图像。只需将垂直光栅线弯曲45度,使对象看起来像3D(并在相邻单元上方绘制),即可创建3D外观,而无需在代码中添加额外的复杂度,如OpenGL

我希望我把我的观点讲清楚。否则请问:)

好吧,所以我没说清楚——就像预期的那样:)对不起,我也不是专家。我上面所说的“弯曲”被称为“剪切”(至少在Gimp中是这样)。其基本思想是创建一个3D外观,而不实际进行3D-就像你在纸上画一个3D立方体一样。也许一个(公认相当丑陋)的例子可以帮助:


它不是3D的-不需要三维空间中的坐标-只有位图才能创建一致的外观。

+1主题医院:谢谢。这确实是一场精彩的比赛!:)对不起,我对图形知之甚少。。。您所说的“仅将垂直光栅线弯曲45度”是什么意思?我不确定我是否想去主题医院的外观完全,因为已经有2个项目,正在使用原始图形。我想让这个游戏有一些独特的图形。这叫做等距观看。很酷,最后一位专家加入了对话:)谢谢!谢谢你的例子。这看起来和原来的主题医院差不多。我试图与其他使用原始图形的项目有所不同。我最初的想法是让人的图形经过一个正方形,所以相同,但没有倾斜。谢谢你的意见!:)呵呵,是的,真是美好的回忆!是的,这是我第一个规模合适的项目,所以我正在学习,已经学到了很多!如果我想的话,我只想在以后的日子里选择3d。可能比我想象的要难,我会说,在2D中完成这一切,然后当你想进入3D时,开始做一些简单得多的事情。也许你可以再去爪哇医院……是的,我同意。我的意思是3D听起来是个不错的主意,但是把它引入我的第一个项目这个复杂的。。。好吧。谢谢你的意见:)谢谢你权衡双方。我不是一个很好的艺术家,所以2d或3d,我可能不会做任何图形。我对实际使用游戏引擎知之甚少。这是我的第一个游戏,所以我希望学习:)对于这样一个规模的项目来说,jME看起来有点太大了。我计划将3d图形保持在一个z平面上(我想),因为一次只能在一个楼层中,所以项目只有x和y,而z始终都是