Articles of panda3d

Panda3d处理在搅拌机上创建的墙壁上的碰撞

编辑2 :更新的代码,所以runnable zip与下面的复制部分不同(尽管所有改变的是run_me.py中的那部分) 编辑:与源文件的Runnable zip,对不起: https : //dl.dropboxusercontent.com/u/12781104/Collisions.zip 现在我正在试图为我的角色创造一个小房间,走过去,它会正常工作,但是会穿过墙壁,我很难设置碰撞逻辑来阻止角色穿过墙壁。 问题是正确创建碰撞飞机与墙壁排队(有没有办法在搅拌机中做到这一点?)… 迄今为止与墙壁碰撞有关的代码 [Removed imports] …. self.cTrav = CollisionTraverser() robotCHandler = CollisionHandlerQueue() robotWallCHandler = CollisionHandlerPusher() WALL_MASK=BitMask32.bit(2) ralphStartPos = (0, 0, 0) self.ralph = loader.loadModel("robot.x") self.ralph.reparentTo(render) self.ralph.setScale(1) self.ralph.setPos(ralphStartPos) self.ralph.setCollideMask(BitMask32.allOff()) # setup tube to suround robot #(robot is 3 height, by 1.5, 1.5) cTube = CollisionSphere(0, 0, 0, 3) […]

TEXCOORD0与Cg着色器中的COLOR

我开始学习Cg着色器编程,遵循Panda3d着色器教程。 有一个场景只显示一个立方体,模型的每个顶点都有不同的颜色,我可以成功的使用下面的着色器: void vshader( uniform float4x4 mat_modelproj, in float4 vtx_position : POSITION, in float4 vtx_color : COLOR, out float4 l_color : COLOR, out float4 l_position : POSITION) { l_position = mul(mat_modelproj, vtx_position); l_color = vtx_color; } void fshader( in float4 l_color : COLOR, out float4 o_color : COLOR) { o_color = l_color; } 这工作正常,我可以看到在顶点之间插值的立方体上的颜色,基于立方体模型中设置的顶点的颜色值。 现在我把这个着色器改为: […]

Maya / Panda3D是从哪里来的?

总的noob到玛雅。 总的noob到Panda3D。 只要有空闲时间,我就计划在两个方面都做得很好,但现在我有一个在几个小时内完成的任务,需要这样做: (迷惑我的部分是粗体的。) 模型和纹理车辆和两个不同的障碍 用飞机在pandas建立场景图,车辆,每个障碍物的几个副本,以及(至less)一个方向灯 程序车辆运动,限制在一个平面(不是地形) 工作车灯 车辆与障碍物碰撞 如何将光源附加到模型上? 我假设这是在Panda3D中完成的,但我对此已经有了一些新的认识,我不会惊讶于听到它是模型的一部分。

我如何用Panda3D的示例项目修复这些错误?

我刚刚在Mint 12 32位虚拟机上安装了最新的Panda3D软件包。 然后我下载并configurationEclipse,并尝试运行Asteroids示例项目。 该窗口已正确创建。 但是一旦游戏结冰后渲染场景。 这也发生在其他示例应用程序中。 这里是错误日志: DirectStart: Starting the game. Known pipe types: glxGraphicsPipe (all display modules loaded.) :display:gsg:glgsg(warning): Occlusion queries advertised as supported by OpenGL runtime, but could not get pointers to extension functions. OpenGL Warning: glXChooseFBConfig returning NULL, due to attrib=0x6, next=0xffffffff :display:glxdisplay(warning): No suitable FBConfig contexts available; using XVisual only. […]

Blender DirectX输出到Panda3D

最近我一直在试验Panda3D。 我有一个在Blender中制作的各种骨头的角色,目前有一个animation,我希望导出为* .x格式的Panda3D。 我目前的尝试是导出模型是首先通过检查导出菜单(文件名: char.x )中的“Export Armatures”button导出骨头[Armatures]。 感谢*.x文件格式,我读了这个文件,它似乎有与模型相同的骨骼结构格式(带有父母和matrix位置数据)。 第二个导出是selectanimation – >完整animation,只提供animation(文件名: char_idle.x )。 模型导出很好。 我还不确定这个animation,但是这个文件似乎很好。 这是我的模型加载到python&Panda3D的代码: self.model = Actor("char.x",{"char_idle.x"}) 当我运行程序时,命令行提供了一些错误,主要的错误是: :Actor(warning): char.x is not a character! 和 … File "C:\Panda3D-1.8.0\direct\actor\Actor.py", line 284, in __init__ if (type(anims[anims.keys()[0]])==type({})): AttributeError: 'set' object has no attribute 'keys' 第一个错误是我最感兴趣的。 如果我将animation字典留空,模型将起作用。 在没有animation的情况下,角色出现在未animation的T位置,但演员的警告仍然显示出来。 当我输出模型的时候,角色应该包括各种骨头? 我不是用搅拌机的经验,我只是一个程序员。 所以,如果问题在于搅拌机,请在发布回复时记住这一点。 我会尽力跟上。 我也试图打印出没有任何animation加载的骨骼结构,它提供了一个类似的错误与行print self.model.listJoints() : File "C:\Panda3D-1.8.0\direct\actor\Actor.py", […]

投影的纹理不会出现在网格的“背面”上?

我想通过使用投影纹理在我的角色身上创造血液伤口。 我曾经看过一些有关Left 4 Dead这类游戏的评论,他们说他们使用投影纹理来performance血液。 但是投射纹理的方式是,如果你把一个纹理贴在一个装有角色的角色上,说出他的胸部,那么纹理也会出现在他的背上。 那么有什么窍门? 如何获得投影纹理只出现在网格的一面? 如果有帮助,我使用Panda3D游戏引擎。

需要减less网格数量

在Panda3d中,我加载一个模型并在场景图中放置10000个引用。 它运行在(说)2Hz。 我加载一个三维模型包含10000完全相同的对象的副本,它运行在(说)60赫兹。 就像使用flattenStrong()命令一样,但是在运行时是一样的。 所以问题是这个行为是Panda3D的一个特点,还是它适用于所有游戏引擎的基本规律?

如何在等距游戏中做三维碰撞?

我想知道如何在等距游戏中获得基本的碰撞检测。 我使用panda3d,它具有非常舒适的子弹,颂歌和一个小型内置物理框架的支持。 问题是,这些自然不适合平面图像。 我在三维坐标系中使用dynamic生成的四边形作为canvas。 每个图像或纹理映射到其中之一。 这个想法是创建与图像瓷砖,并将其放置在三维让panda3d做渲染。 为了在屏幕上放置一棵树,我将生成一个dynamic平面四边形,并在其上映射一个具有树形图像的纹理。 然后我会把四边形移动到所需的位置,一切都很好。 Panda3d管理正确的渲染顺序。 到目前为止,玩家对象只是在环境中漫步。 我需要实施基本的碰撞检测,以巩固树木。 浏览以前的问题我发现了这个问题我如何处理等距碰撞检测? 不幸的是,这个问题只针对碰撞,以防止玩家在地面上掉下来,让他跳上平台。 这可以用panda3d的内置物理来完成。 这是一张图片,向你展示我想要的东西: 地面本身是由一个10×10的瓷砖网格。 我用他们所有的相同的纹理。 树不是在2D中呈现的精灵。 它实际上是一个具有部分透明树纹理的扁平矩形。 白色的矩形是我的播放器对象。 使用标准的3D物理,我可以防止玩家穿过四边形,但树仍然是完全平坦的。 我想添加一个“虚拟网格”有3d碰撞,但肯定会在性能方面昂贵,并会破坏我的3Dcanvas整洁的实施。 是否有一个规范的方式来获得3D等距游戏中的碰撞? 你会怎么做? 请代表panda3d回答第二个问题。 我知道这可能是相当复杂的。 一篇好文章的链接将是完美的。 如果你想看看我的代码,你可能想读这个问题: 我如何在panda3d中使用setFilmSize来实现正确的视图? 更新: 这是另一张可能更好地描述这个问题的图片

如何在Panda3D中设置加载屏幕?

我将如何使用C ++在Panda3D中使用Double Buffering(创建加载屏幕)? 我search了Google,发现一些讨论交换缓冲区的论坛,但是我还没有看到任何显示任何types的源代码(特别是Panda3D / C ++)的论坛。 我想尽量远离使用纯OpenGL代码,并通过Panda3D工作,但如果我没有其他select,那么我将不得不使用OpenGL编码。

如何在panda3d中使用透明纹理?

我需要使用panda3d在平面四边形上映射部分透明的纹理。 用四边形作为canvas,我想创建一些像在三维坐标系中定位的精灵。 我想渲染一棵树。 正如你所看到的,树边界的颜色值已经被拉伸到了纹理上。 如何更改纹理模式以包含Alpha通道? 我只是不知道如何掌握正确的设置。 链接到正确的manpage将是完美的。 如果你需要更多关于设置的信息,你可能想看看我的另一个问题: 我如何在panda3d中使用setFilmSize来获得正确的视图?