【问题标题】:How to set color on collision object in Bullet?如何在 Bullet 中设置碰撞对象的颜色?
【发布时间】:2013-02-08 00:57:53
【问题描述】:

所以我已经制作了一个不错的调试抽屉...并让所有世界对象都被淹没...现在我想要一些用特殊颜色绘制(例如子弹播放器,敌人网格表示)。那么如何指定网格颜色以便正确绘制在dynamicsWorld->getDebugDrawer()->debugDrawWorld(); 上?我在btCollisionShape btCollisionObject API 中都找不到着色选项=(那么如何设置颜色呢?

【问题讨论】:

  • 什么是 CollisionShape 和 CollisionObject?这些不是标准课程。
  • @Code-Guru 他们来自“子弹”引擎,就像帖子中的标签和链接所暗示的那样?
  • @Code-Guru:确实是这样!=)

标签: c++ bulletphysics


【解决方案1】:

如果我没记错的话,您应该能够在覆盖 btIDebugDraw::drawLinebtIDebugDraw::drawContactPoint 时控制颜色,因为两者的最后一个参数是代表红色、绿色和蓝色的 const btVector3& - 来自班级的 cmets,在 [0 .. 1] 的范围内。

【讨论】:

    【解决方案2】:

    迟到总比不到好。

    const glm::mat4 transform = glm::mat4(1.0f); // Identiy
    btTransform btTransf;
    btTransf.setIdentity();
    btTransf.setFromOpenGLMatrix(glm::value_ptr(transform));
    btRigidBody* rb = new btRigidBody(0.0f, new btDefaultMotionState(btTransf), new btSphereShape(0.5f));
    rb->setCustomDebugColor(btVector3(1.0f, 0.0f, 0.0f)); // Red collision
    

    【讨论】:

      猜你喜欢
      • 2015-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多