这可以在cocos2d-x中生成3d场景吗?
我用cocos2d-x制作了手机游戏(只是简单的学习引擎测试),我有12个场景,都是2d图形。我只想一个改变为三维,简单的三维模型和三维墙上拍摄。 这是否可能,以及如何在cocos2d-x中,尽管名称表明它只是2d这可以在cocos2d-x中生成3d场景吗?,cocos2d-x,Cocos2d X,我用cocos2d-x制作了手机游戏(只是简单的学习引擎测试),我有12个场景,都是2d图形。我只想一个改变为三维,简单的三维模型和三维墙上拍摄。 这是否可能,以及如何在cocos2d-x中,尽管名称表明它只是2d (我在youtube上看到了导入3d模型的演示,但我需要用真实的墙和东西在房子里拍摄,这有点不同)。这是绝对可能的 如果您想自己实现3D场景,也可以。您可能需要创建一个从cocos2d::Node派生的类。然后实现了draw方法 void YourClass::draw(c
(我在youtube上看到了导入3d模型的演示,但我需要用真实的墙和东西在房子里拍摄,这有点不同)。这是绝对可能的
void YourClass::draw(cocos2d::Renderer *renderer,
const cocos2d::Mat4 &transform, uint32_t flags) override
{
m_customCommand.init(globalZOrder);
m_customCommand.func = CC_CALLBACK_0(
YourClass::onRender, this, transform, flags);
renderer->addCommand(&m_customCommand);
}
draw方法仅用于提交从实际渲染计时调用的渲染命令
void YourClass::onRender(const cocos2d::Mat4 &transform, uint32_t flags)
{
// render whatever you want using OpenGL ES 2.0 APIs
}
但是你应该意识到以下几点
CCNode.h:
* The following GL states will be enabled by default:
* - `glEnableClientState(GL_VERTEX_ARRAY);`
* - `glEnableClientState(GL_COLOR_ARRAY);`
* - `glEnableClientState(GL_TEXTURE_COORD_ARRAY);`
* - `glEnable(GL_TEXTURE_2D);`
* AND YOU SHOULD NOT DISABLE THEM AFTER DRAWING YOUR NODE
* But if you enable any other GL state, you should disable it after drawing your node.
第3版中增加了官方文件3D:3D 从源代码生成的测试包含几个3D示例:
cocos2d-x/build/bin/cpp-tests/cpp-tests
这是第一个:
源代码位于:这是可能的,但您必须通过OpenGL进行所有渲染,方法是将CCNode子类化,并在其draw(或visit?)方法中添加OpenGL(3D)渲染代码,设置GL状态等等,然后恢复cocos2d默认GL状态。