• Cocos2d-x 3D模型渲染

    2018-11-15 19:05:50
    Cocos2d-x 3D模型渲染 声明:本文使用的是cocos2d-x-3.17的代码 文章中的提到的测试代码下载地址https://gitee.com/Kyle12/Cocos2dRenderStudy 3D模型 Cocos2d支持渲染*.fbx和*.obj两种3D模型,*.obj模型可以...

    Cocos2d-x 3D模型渲染

    声明:本文使用的是cocos2d-x-3.17的代码

    文章中的提到的测试代码下载地址https://gitee.com/Kyle12/Cocos2dRenderStudy

    3D模型

    Cocos2d支持渲染*.fbx和*.obj两种3D模型,*.obj模型可以直接渲染,*.fbx模型需要先使用官方的转换程序fbx-conv.exe转换成*.c3t或者*.c3b类型才能渲染。*.c3t是Json格式的文本文件可以使用记事本打开,*.c3b是二进制文件更省空间,处理速度也更快。这几种文件中只有*.c3t文件是文本文件,这里结合*.c3t文件分析一下3D模型。

     

    以下是一个*.c3t文件,这里下载,可以先把文件的扩展名改成json,用notepad++打开:

    文件由version、id、meshes、materials、nodes、animations组成。Meshes包含了顶点数据索引数据,materials包含了绘制使用的纹理,nodes包含了模型各个模块和骨架 ,animations是骨骼动画。Animations另外有文章讨论,先看meshes、materials、nodes。

    对于一个3D模型可以包含很多模块,如下图是win10上“画图3D”程序制作3D模型,(注意“画图3D”程序生成的*.fbx模型,使用fbx-conv.exe程序转换时有bug,转换后的模型有时显示不正常

    这里面有3个模块,这3个模块构成了一个大的3D模型,每个模块我们可以调整位置和大小,为了更加方便的控制,每个模块都可以有自己的局部坐标系,模型会有一个大的全局坐标系。

     

    Meshes

    Meshes包含了模型的所有顶点数据vertices,顶点数据的属性(attributes)和各个模块(parts)的索引。以上面的3D绘图为例,vertices中会包含3个模块所有的点,parts中包含3组索引,代表三个模块。

     

    materials

    materials包含了模型中用到的纹理,只记录了纹理的文件名。这里面也会包含物体的光照材质、反光率、透明度等等,但Cocos2d-x 3.17中并没有使用这些参数。

     

    nodes

    nodes记录了整个模型的结构,如果使用了骨骼也会包含骨骼信息。以上面的3D绘图为例,首先有一个node节点,代表整个大的模型,它会有3个子node,代表3个模块。每个node里面都会有一个4*4矩阵用于坐标系变换

     

    模型加载

    模型的加载需要用到Bundle3D类,*.c3t文件加载后meshes对应meshdatas对象,materials对应MaterialDatas对象、nodes对应NodeDatas对象、animations对应Animation3Ddata对象,Animation3Ddata另外有文章讨论。另外三个对象数据结构如下:

     

    其他类型的3D模型加载后也对应的是这三个对象,加载函数为Sprite3D::loadFromFile。

     

    Mesh初始化

    对于3D模型的绘制使用的是Sprite3D对象,Sprite3D对象包含了多个Mesh对象,最终模型的绘制由Mesh对象完成。加载后的模型数据meshdatas、MaterialDatas、NodeDatas可以用来创建Mesh对象,Mesh对象实现了3D模型的绘制。模型中每个模块需要创建一个Mesh,即NodeData中的每个modelNodeData都会创建一个Mesh

     

    顶点缓存和索引缓存

    首先需要根据meshdatas创建顶点缓存MeshVertexData和索引缓存MeshIndexData,顶点缓存MeshVertexData中会包含多个索引缓存MeshIndexData,结构如下:

     

    Mesh结构

     

    Mesh中有一个对象Mesh:: _material对象中这个对象并不是MaterialDatas初始而来。MaterialDatas中只存储了纹理,也就是Mesh:: _texturesMesh:: _material是一个Material类包含了所有mesh绘制的数据。

    Material类内部包含了Technique数组,Technique中包含Pass数组,Pass里面有VertexAttribBinding,真正存储绘制数据的是VertexAttribBindingVertexAttribBinding包含了绘制用的着色器程序GLProgramState,顶点索引缓存MeshVertexData。

    Material类设计的很乱,很难从Technique类和Pass类看出类设计的目的,原本以为这两者是为了实现3D模型“换装”用的,但官方给的“换装”例子并没有使用这两个类实现。

     

    模型绘制

    3D模型绘制使用的是MeshCommand命令,MeshCommand命令可以直接使用顶点缓存索引缓存绘制,也可以使用Material类绘制。直接使用缓存绘制的方法请参考“Cocos2d-x 渲染器Renderer——MeshCommand”,这里主要是使用Material类绘制。

     

    Material绘制3D模型

    Material类包含了所有mesh绘制要使用的数据,绘制的时候只需一个Material对象就可以绘制,以下是MeshCommand中使用Material绘制的代码:

    for(const auto& pass: _material->_currentTechnique->_passes)

    {

        pass->bind(_mv);

     

        glDrawElements(_primitive, (GLsizei)_indexCount, _indexFormat, 0);

        CC_INCREMENT_GL_DRAWN_BATCHES_AND_VERTICES(1, _indexCount);

     

        pass->unbind();

    }

     

    Material类中有多个Technique,绘制时只会使用_currentTechnique,会对_currentTechnique中所有的pass类都执行一次绘制。

    从代码中可以看出Cocos2d希望每个3D模块绘制都由一个Material对象控制,因为获取Material对象的函数Sprite3DMaterial::createBuiltInMaterial返回值是缓存Material对象的克隆值。Material对象克隆时会克隆所有的Technique对象,pass对象,pass对象中的的_glProgramState也会被克隆,这也可以说明pass对象中的的_glProgramState不是共享的,是对象单独所有的。pass->bind(_mv)使用的Pass::_glProgramState,而不是VertexAttribBinding::_glProgramState

    因为pass对象中的的_glProgramState是单独所有的,所以我们可以在生成MeshCommand命令时设置pass的_glProgramState中的uniform值,不会影响其他对象的绘制。

     

    实际代码中Cocos2d-x 3.17中对这一块的代码设计的很糟糕,原因有以下几点:

    1. pass绘制的顶点缓存和索引缓存来至VertexAttribBinding,所以绘制原本应该使用VertexAttribBinding:: _glProgramState,但实际上使用的是Pass::_glProgramState
    2. Pass::_glProgramStateVertexAttribBinding:: _glProgramState都是指针,他们指向的是同一个对象,这个一致是因为Mesh::setMaterial中的以下代码:
      auto vertexAttribBinding = VertexAttribBinding::create(_meshIndexData, pass->getGLProgramState());
      pass->setVertexAttribBinding(vertexAttribBinding);

      这种方式并不能完全保证Pass::_glProgramStateVertexAttribBinding:: _glProgramState完全都是指向同一个对象。
    3. Pass::_glProgramState是可以通过函数Pass::setGLProgramState随意设置的,而设置的_glProgramState并不能保证没有被共享。毕竟程序中还专门设计了GLProgramStateCache类共享GLProgramState

     

    系统预创建Material类型

    Cocos2d-x定义了以下几种Material类型,由枚举MaterialType表示:
    NLIT:不使用光照,使用纹理
    UNLIT_NOTEX:不使用光照,也不使用纹理
    DIFFUS:使用光照和纹理
    DIFFUSE_NOTEX:使用光照,不使用纹理
    BUMPED_DIFFUSE:使用光照,纹理,和凹凸纹理
    CUSTOM:自定义类型
    其中UNLIT、DIFFUSE、BUMPED_DIFFUSE还分是否使用蒙皮骨骼。

    函数Sprite3DMaterial* Sprite3DMaterial::createBuiltInMaterial(MaterialType type, bool skinned)可以获取Materialtype为Material类型,skinned为是否使用骨骼。

     

    Material绘制步骤

    1. 创建顶点缓存和索引缓存,可使用模型加载的MeshDatas数据创建
    2. 创建Material对象,可以使用Sprite3DMaterial::createBuiltInMaterial函数创建
    3. 使用索引缓存创建VertexAttribBinding,并设置Material:: _techniques:: _passes_vertexAttribBinding
    4. 使用Material对象初始MeshCommand绘制命令
    5. 设置Material:: _techniques:: _passes_glProgramStateUniform值。
    6. 绘制出图形。

    Material绘制完整例子:DrawModelScene.cpp/DrawModelScene.h,对应程序菜单“Test Draw 3D->Draw Model

     

    光照

    以下是有光照和无光照对比

    光照作用是使得3D物体看上去更加立体,光照也可以通过光的颜色改变物体颜色。

     

    Cocos2d-x支持四种光源,四种光源以及对应的类是,环境光AmbientLight、方向光DirectionLight、点光源PointLight、聚光源SpotLight。

    使用光照也很简单,光源类继承了Node类,只需要创建相应的光源对象,然后用AddChild加入到场景树的任意节点,绘制Sprite3D精灵时会自动使用场景树的节点。

    执行的顺序如下图:

    完整例子: SpriteLightScene.cpp/SpriteLightScene.h,对应程序菜单“Test Draw 3D->Sprite3D with Light


    动画部分的讲解:Cocos2d骨骼动画

    展开全文
  • 幸好cocos为我们提供了导入3D模型的方法,我相信它在3D方面的功能也会像平面那样越来越强大。 首先,在3dmax建好模型和调好动作,效果如下: 1.导出模型为FBX格式 2.用cocos2dx自带的fbx-conv.exe将FBX转换为c3...

    现在的手机游戏也渐渐朝3D发展了,市面上3d游戏越来越多。。幸好cocos为我们提供了导入3D模型的方法,我相信它在3D方面的功能也会像平面那样越来越强大。

    首先,在3dmax建好模型和调好动作,效果如下:

    1.导出模型为FBX格式

    2.用cocos2dx自带的fbx-conv.exe将FBX转换为c3b。我直接将模型文件拖拽至fbx-conv.exe图标上,自动就在模型所在文件夹下生成了c3b文件

    3.导入cocos2dx

        1)将c3b和相应的材质图片放入Resources

        2)在helloworld.h里添加

    
     
    1. //人物

    2. cocos2d::Sprite3D * man;

    3. //动画

    4. cocos2d::Animate3D * play;

        3)在init函数里添加

     

    
     
    1. //--------------------------------------------加载3d模型

    2. //加载模型文件

    3. std::string fileName = "3dtest_02.c3b";

    4. man = Sprite3D::create(fileName);

    5. auto s = Director::getInstance()->getWinSize();

    6. man->setPosition(Vec2(s.width/2.f, s.height / 2.f-150));

    7. man->setScale(1.5f);

    8. addChild(man);

    9.  
    10. //获取骨骼动画信息

    11. auto animation = Animation3D::create(fileName);

    12. //播放12秒的动画

    13. play = Animate3D::create(animation, 0.f, 12.0f);

    14. man->runAction(RepeatForever::create(play));//循环播放

    好了,这样就成功将模型放入cocos了,我们再来看看效果:


    效果还是可以的

    展开全文
  • cocos2d-x显示3d模型

    2013-06-13 20:49:26
    比如,小场景3d应用(3d立体童话书,3d麻将,3d水果忍者,3d魔方等等),2d地图加入3d 模型的2.5dmmo应用(这个不确定会不会比2d骨骼动画更有表现力或者是开发效率更高),小型3d mmo的开发(比如龙之召唤类卡牌游戏...

    如果cocos2d-x进化成一个2.5d游戏引擎的话,那应该会比现在更加强大。 纯3d的估计不会比Unity做的更好了,但是2.5d的应用还是具有很大的现实意义。

    比如,小场景3d应用(3d立体童话书,3d麻将,3d水果忍者,3d魔方等等),2d地图加入3d 模型的2.5dmmo应用(这个不确定会不会比2d骨骼动画更有表现力或者是开发效率更高),小型3d mmo的开发(比如龙之召唤类卡牌游戏,这些游戏完全没有必要使用Unity),2d游戏加入3d光效(纯2d光效消耗太大,3d光效虽然会增加一些cpu运算,但是极大的降低内存开销---一张贴图和20张图片帧的对比啊)


    这里暂时仅仅完成对md2模型的加载和显示,相比cocos3d它更加简单,与cocos2d-x的系统更加契合,也更加符合我的需求--毕竟我不是拿cocos2d-x做一个3d游戏,而是想3d的一些特殊元素增加2d游戏的表现力(代码取自cocos2d-x的一个3d分支,我抛坟抛出来的...),后期会尝试加入特效系统,主要完成2d游戏中3d光效的播放。(在完成后代码会发布到github,现在先直接贴源代码)


    3d显示代码相对比较多,暂时放到csdn的资源下载里(http://download.csdn.net/detail/langresser/5574973)


    CCNode修改: transform变为虚函数,方便CCSprite3D子类重写

    virtual void transform(void);


    使用:

    CCSprite3D* sprite = CCSprite::create("模型文件", "贴图文件");
    layer->addChild(sprite);
    sprite->runAction(移动、旋转之类的action)




    展开全文
  • cocos3d 模型 查看器

    2020-07-09 17:04:01
    cocos3d模型查看器,可以用来查看FBX生产的c3b 文件,
  • Cocos Creator 2.1.1版3d模型导入详细介绍,主要讲解3d基础特性,3d场景操作,3d摄像机属性,3d模型材质贴图设置,动画设置等内容。

    本文假设你是一个新手,按照本文的操作,可以跑起来一个3D人物模型,附带两个跳舞的动画可以欣赏。

    首先说明一点,目前2.1.1的3d功能还不完善,商用项目请不要升级。
    本教程和源码献给先吃螃蟹的同学。

    前言

    昨天我把Cocos Creator最新2.1.1 版的3D demo放出来了,但是官方文档比较欠缺,论坛也缺少相关文档,这里就把过程详细写一下,也算是一个吃螃蟹的新姿势,希望对大家有用。

    3d系统基础

    在 Creator 2.1 版本中,支持了 3D 模型渲染、3D Camera、3D 骨骼动画 等 3D 特性,同时编辑器原生支持解析 FBX 格式的 3D 模型文件,不需要额外的导入流程。
    详细见官方的文档
    下面开始讲解如何导入FBX格式的3D模型。

    FBX模型导入

    这里讲解带贴图,带动作的FBX模型。

    • 在资源管理器新建一个文件夹DanceMode
    • 将贴图文件夹textures和FBX模型文件同时拖入DanceMode目录下
      在这里插入图片描述

    配置模型参数

    • 点击资源管理器里面的模型women,在属性面板设置缩放系数400,点击应用按钮
      在这里插入图片描述
      在这里插入图片描述
    • 点击属性检查器里面的动画菜单,预先计算骨骼矩阵打上勾,点击应用按钮
      在这里插入图片描述
      到这里模型导入,配置完成,现在就可以开始使用了。

    相机分组

    因为要加载3d模型,又有2d的button,所以既有3d,又有2d,需要分组渲染,2d渲染ui,3d相机渲染模型。

    在菜单项目–>项目设置—>分组管理里面新增一个分组ui

    2D相机设置

    将默认层级管理器里面的节点都删掉,保留一个Main Camera。

    • 将Main Camera的Group设置为ui
    • 将Main Camera的Depth设为0,cullingMask勾上ui,clearFlags去掉Color
      在这里插入图片描述

    添加UI节点

    • 添加两个按钮samba和macarena,代码桑巴舞和马卡雷纳舞
    • samba按钮的x位置-400,macarena的x设为400,两个按钮y坐标都为0
    • 给按钮Group设置为ui

    添加3D节点

    • 在层级管理器,添加一个空节点和Canvas平级,命名为root,在属性面板点击3D,这样就变成了一个3D节点
    • 给root节点添加灯光节点,命名为Light
      在这里插入图片描述
    • 在root下添加平台,命名为Plane
      在这里插入图片描述
    • 在root下添加摄像机,命名为3D Camera,在属性面板上点击3D将其变为3d节点
      在这里插入图片描述
    • 将资源管理下的模型文件women,拖入root下,引擎会自动解析模型
      在这里插入图片描述

    设置灯光

    点击Light节点,设置属性说明:

    • Type:光源类型,选这DIRECTIONAL,平行光源
    • Intensity:光照强度
    • Shadow Type:阴影类型,选HARD,硬阴影
    • Shadow Resolution:阴影分辨率,值越大阴影越清晰。在 Shadow Type 不设为 NONE 时生效
    • Shadow Darkness:阴影暗度,值越大阴影越暗。在 Shadow Type 不设为 NONE 时生效
    • Shadow Min Depth:光源产生阴影的最小距离,如果物体跟光源的距离小于最小距离则不会产生阴影。在 Shadow Type 不设为 NONE 时生效
    • Shadow Max Depth:光源产生阴影的最大距离,如果物体跟光源的距离大于最大距离则不会产生阴影。在 Shadow Type 不设为 NONE 时生效
    • Shadow Depth Scale:光源深度缩放值,值越大阴影越暗。在 Shadow Type 不设为 NONE 时生效
    • Shadow Frustum Size:平行光中视锥体的大小,决定平行光产生阴影的范围。仅在 Shadow Type 不设为 NONE,Type 设为 DIRECTIONAL 时生效
      在这里插入图片描述

    设置平台接收阴影

    为了产生阴影,必须设置Plane接受阴影,勾上Receive Shadows
    在这里插入图片描述

    设置3D相机

    3D相机,主要有两个属性要设置

    • cullingMask,只勾选default
    • 取消正交投影,设置视野大小
      在这里插入图片描述

    3D场景编辑器

    点击场景编辑器上面的3D按钮,场景编辑器就切换为3D模式,如下图。
    在这里插入图片描述
    使用alt+左键,就可以改变移动视野,滚轮缩放,右键旋转视角

    设置模型材质

    • 点击模型文件下的材质球,查看属性面板,默认是使用冯氏材质
      在这里插入图片描述
      在这里插入图片描述
    • 设置材质贴图,将对应贴图拖到对应框内,有3个贴图,法线贴图,漫反射贴图,高光贴图
      在这里插入图片描述

    设置模型产生阴影

    • 点击层级管理器里面的节点Kachujin,查看属性面板
      在这里插入图片描述
    • shadow Casting Mode设置为On,这样可以在Plane上看见模型的阴影了
      在这里插入图片描述

    设置相机位置

    • 选中3dCamera节点,可以看到场景中相机有3个轴,拖拉可以改变相机位置
      在这里插入图片描述
    • 选中菜单下面的工具条,第二个旋转工具,摄像机会出现三个带颜色的圆,是用来调整节点3个方向的旋转角的,鼠标放在圆上拖动,就可以改变摄像机的旋转角
      在这里插入图片描述
    • 菜单面板下面,开启游戏预览,可以查看3d预览
      在这里插入图片描述

    播放动画

    • 层级管理器选中模型根节点RootNode,可以看到属性面板有一个Clips数组,将其值改为1
    • 将资源管理器下,模型文件里面的动画资源拖入对应的框,playonload勾上
      在这里插入图片描述
      到这里就操作完了,选择浏览器运行,就能看到人物跳舞的画面了。
      在这里插入图片描述

    增加3D动作

    目前2.1.1版本的动作系统,只有Rotation有了3D的,其他的动作都还没有支持3D,应该在下一个版本支持。我们先试试跳一跳的动作。

    • 增加两个按钮,取名jumpLeft,jumpRight
    • 脚本上增加两个回调,代码如下
        jumpLeft() {
            this.node.runAction(cc.jumpBy(1, -400, 0, 300, 2));
        }
    
        jumpRight() {
            this.node.runAction(cc.jumpBy(1, 400, 0, 300, 2));
        }
    

    效果如下:
    在这里插入图片描述
    源码地址:https://github.com/fylz1125/3Demo
    好了,就写这么多了,欢迎关注我的公众号【Cocos Creator研究笔记】,可以下载最新源码。

    展开全文
  • 随着cocos2d-x对3D特性的支持,很多开发者开始尝试在自己的游戏中载入3D模型,不过最近有些开发者表示不能接受3D模型显示时边缘的锯齿现象,特别是在windows上看着会更明显,这里给大家提供一个方法在不同平台上解决...

    随着cocos2d-x对3D特性的支持,很多开发者开始尝试在自己的游戏中载入3D模型,不过最近有些开发者表示不能接受3D模型显示时边缘的锯齿现象,特别是在windows上看着会更明显,这里给大家提供一个方法在不同平台上解决这个问题。

    Windows/Mac平台:
    cocos/platform/desktop/CCGLViewImpl.cpp 然后在GLViewImpl::initWithRect函数中添加下面语句
    glfwWindowHint(GLFW_SAMPLES,4);4是一个采样的等级,你可以输入2,4,8 数值越大抗锯齿的效果越好,不过经过本人测试一般的android机器也就支持到4再高就无法运行了。

    IOS平台:
    找到工程目录下proj.ios_mac/ios/AppController.mm文件,然后找到下面这行代码
    CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]
    修改 multiSampling: NO 为 multiSampling: YES
    修改 numberOfSamples: 0 为 numberOfSamples: 4

    Android平台:
    首先,在cocos\platform\android\java\src\org\cocos2dx\lib目录下找到Cocos2dxActivity.java文件,在文件头包含下面几项:
    import javax.microedition.khronos.egl.EGL10;
    import javax.microedition.khronos.egl.EGLConfig;
    import javax.microedition.khronos.egl.EGLDisplay;
    import android.opengl.GLSurfaceView.EGLConfigChooser;
    接下来,在Cocos2dxActivity类的内部添加一个类 如下: 
    public class BaseConfigChooser implements EGLConfigChooser {
    public BaseConfigChooser(){
    }
    public EGLConfig chooseConfig(EGL10 egl, EGLDisplay display){
    int CONFIG_ATTRIBS[] =  
    {  
    EGL10.EGL_RED_SIZE,       5,  
    EGL10.EGL_GREEN_SIZE,     6,  
    EGL10.EGL_BLUE_SIZE,      5,  
    EGL10.EGL_DEPTH_SIZE,     16,  
    EGL10.EGL_ALPHA_SIZE,     EGL10.EGL_DONT_CARE,  
    EGL10.EGL_STENCIL_SIZE,   EGL10.EGL_DONT_CARE,  
    EGL10.EGL_SURFACE_TYPE,   EGL10.EGL_WINDOW_BIT,
    EGL10.EGL_SAMPLES, 4,
    EGL10.EGL_NONE 
    };  

            int[] num_config = new int[1];  
            egl.eglChooseConfig(display, CONFIG_ATTRIBS, null, 0, num_config);  
            int numConfigs = num_config[0];  
            if (numConfigs <= 0) {  
                throw new IllegalArgumentException("No configs match configSpec");  
            }  
            EGLConfig[] configs = new EGLConfig[numConfigs];  
            egl.eglChooseConfig(display, CONFIG_ATTRIBS, configs, numConfigs, num_config);  
            EGLConfig config = configs[0];  
            if (config == null) {  
                throw new IllegalArgumentException("No config chosen");  
            }  
            return config;
    }
    }


    然后,再找到 onCreateView 函数,在函数内添加下面代码:


    glSurfaceView.setEGLConfigChooser(new BaseConfigChooser());


    最后,打开Cocos2dxRenderer.java文件找到onSurfaceCreated函数添加下面代码:


    pGL10.glEnable(pGL10.GL_MULTISAMPLE);

       

    抗锯齿其实就是边缘羽化,没有特别清晰的边缘,不过这种抗锯齿对性能要求是很高的,使用也是需要慎重考虑的。



    展开全文
  • 抢鲜品尝Cocos Creator憋了半年之久的3D功能部分,导入一个简单的FBX模型实现真3d效果。
  • --3d模型和3D动画的创建require"Cocos2d"local Sprite3DScene=class("Sprite3DScene",function() return cc.Scene:create()end)--添加create函数function Sprite3DScene:create() local scene=Sprite3DScene.new(...
  • 3d系统基础 FBX模型导入 配置模型参数 相机分组 2D相机设置 添加UI节点 添加3D节点 设置灯光 设置平台接收阴影 设置3D相机 3D场景编辑器 设置模型材质 设置模型产生阴影 设置相机位置 播放动画 增加3D动作 本文假设...
  • 没做过3d,想自己研究一下,我创建了一个Cube预制体,现在想获取这个预制体实例的长宽高。不知道怎么弄。 ``` @property({ type: Prefab }) public cubePrfb: Prefab = null; start() { this....
  • Cocos3D Mesh Viewer

    2020-07-09 17:13:32
    由知名Cocos技术专家火云红孩儿开发的Cocos3D模型工具,帮助Cocos3D程序进行模型处理与观看。
  • 本文为CocoaChina论坛版主总结的是关于Cocos2d-x 3D 模型制作和导出时的一些注意事项,供大家参考。 1. 模型必须有材质且要给“漫反射通道“赋予贴图,没有材质的模型会在导出时被忽略或产生异常,没有贴图的材质...
  • 引擎版本:2.1.0 编辑工具:VsCode 目标:棋盘漫游 Tip:3D版本V2.1.0哦! 首先我找到了一个棋盘的素材 ...1000*1000的大小,画布也更改1000*1000 ...右上角一个按钮,towerManager转成个3D空...后面我们实例化的模型都加...
  • Cocos 不算长的生命历程中,我们曾多次尝试给开发者带来 3D 游戏的开发能力:2014 年,我们的 3D 团队开辟了 Cocos2d-x 对 3D 的支持,至今已...
  • Cocos2d-x中的3D功能

    2016-09-12 22:55:51
    Cocos2d-x中的3D功能 标签: cocos2d-x3D 2015-03-01 14:42 1170人阅读 评论(0) 收藏 举报  分类: cocos(14)  目录(?)[+] 或许你已经开始接触Cocos2d-x了,并且已经...
  • 继续加油~,用这一款工具帮助更多的Cocos3D团队! 花了一周多时间,完成了一款Cocos Mesh Viewer ,截止现在,终于算有一个凑合的功能版本可以用。 已经支持的功能: (1)打开任意FBX 转换为C3B文件。 (2)...
  • (以下内容依据Cocos秋季峰会演讲速记稿整理) 主持人王哲: 前面几个演讲人展示了不同的技术解决方案。 第一种是《三国之刃》用Flash完成所有动画、UI制作,然后用JSFL开发一个Flash扩展来做导出,最后到...
  • 3d模型的任意切割一直是游戏开发里的一个很大的问题,其实博主也没有根本解决,主要的问题是在切面上,然而如果是切面片则并不存在切面的问题,所以是可以在项目中实用的,总之本文权当研究吧。先看看博主切出来的...
1 2 3 4 5 ... 20
收藏数 4,855
精华内容 1,942