3D建模

A collection of 1736 posts
3D建模

Cocos2d-x:搭建开发环境 - Linux 平台

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 搭建开发环境 - Linux 平台 工具准备 1. Ubuntu 16.04,我们已在 上做了版本功能的完整验证,建议用户使用此发行版,以防止由于版本不同引发编译或运行错误。 下载参见:官网页面,aliyun 镜像站。Ubuntu 16.04 2. cocos2d-x v3.17,下载后解压,下载参见:Cocos官网页面 3. 建议将默认软件源,替换为国内的软件源, 如, 这样在下载依赖时会有更快的速度//mirrors.aliyun.com/ubuntu 环境配置 1. 运行引擎文件夹根目录 ,脚本将会自动设置一些环境变量,遇到需要交互输入的可以直接回车跳过。setup.py 打开终端 terminal,运行脚本
2 min read
3D建模

Cocos2d-x:搭建开发环境 - iOS

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 搭建开发环境 - iOS 工具准备 1. Cocos2d-x v3.17,下载后解压,下载参见:Cocos官网页面 2. Xcode 9 下载后安装,下载参见:Apple官网页面 配置步骤: 1. 打开 cocos2d-x-3.17/build/cocos2d_tests.xcodeproj 在 Xcode 顶部工具栏选择 ,,点击运行,项目将自动编译运行,效果如图:cpp-tests iOSiPhone 7 Plus 如何调试(Debug) 1. 点击代码行左侧的空白,设置断点 2. 运行 cpp-tests 操作 App
1 min read
3D建模

Cocos2d-x:搭建开发环境 - Android 平台

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 搭建开发环境 - Android 平台 工具准备 1. Android Studio v3.0+, 下载参见:Google 中国开发者网站 2. cocos2d-x v3.17,下载后解压,下载参见:Cocos 官网页面 配置步骤: 完成 Android Studio 安装,进入欢迎界面,选择 。 选择目录 ,点击 进入 IDE 主界面。Import project(Gradle, Eclipse ADT, etc.)cocos2d-x root/tests/cpp-tests/proj.android-studioOK 2.
4 min read
3D建模

Cocos2d-x:SQLite

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 SQLite SQLite 是一个独立的 SQL 数据库引擎。这意味着没有服务器 涉及。SQLite 在游戏运行时运行,您编写代码进行连接 到数据库并操作其内容。这绝不是全面的 指南,事实上,我们涵盖了SQLite可以为您做的1%。请阅读他们的网站,了解有关SQLIte为开发人员提供的功能的更多详细信息。 开始。 为了使用SQLite,您必须下载它并将其添加到您的项目中。请 有关更多详细信息,请参阅 SQLite 下载页面。 出于我们的目的,您只需要项目中的sqlite.h和sqlite.c。 将这些文件添加到环境中,并确保它们是生成过程的一部分。 SQL 如何在游戏中工作? 现在你已经有了SQLite,你必须了解如何在应用中使用数据库。 工程。没有任何自动的好处,除非你编码它。没有向导 并且没有免费的功能。这是由您手工编码的,以满足您的特定要求 需要。一般来说,您需要评估以下内容: 您的数据库是否已经存在?
4 min read
3D建模

Cocos2d-x:图形性能优化

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 图形性能优化 黄金法则 二八原则 系统中 20% 的代码会消耗 80% 的性能!在进行性能优化时,我们应该始终坚持这个原则。 够用原则 如果有两种方式渲染图像,无法观察出哪个渲染的效果更好,那就选用性能消耗更低的方式。我们知道,RGBA4444 像素格式的 PNG 图像质量比 RGBA8888 像素格式的要低,但是如果在游戏效果上,无法观察出哪个效果好,我们应该坚持使用 RGBA4444 的像素格式,因为它占用更少的内存,出现内存问题和带宽问题的可能性更小。 音频采样率也是一样的。 了解目标设备和游戏引擎 了解目标设备的 CPU/GPU 系列,当性能问题仅在某些设备上出现时,这个信息就非常重要。或许你会发现他们共用一种 GPU:ARM、PowerVR 或 Mali。然后就可以进行有针对性的分析。 了解目前使用的游戏引擎也很重要,如果你知道引擎是如何组织图形命令,如何处理绘制过程。
4 min read
3D建模

Cocos2d-x:着色器和材质

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 着色器和材质 什么是着色器 从维基百科: 在计算机图形学领域,着色器(Shader) 是一种特殊类型的计算机程序,最初用于做阴影,在图像中产生适当的光照、明暗,现在主要用于产生特殊效果,也用于视频后期处理。 非专业人士的定义可能是:告诉计算机如何以一种特定的方式绘制东西的程序。简单地说,着色器就是运行在 GPU 上用于图像渲染的一段程序,Cocos2d-x 用它绘制节点。 Cocos2d-x 使用的着色器语言是 OpenGL ES Shading Language v1.0,描述 GLSL 语言不在本文的范围之内。想了解更多,请参考 规范文档。在 Cocos2d-x 中,所有的可渲染的 Node 对象都使用着色器。比如,Sprite 对象使用为 2D 精灵优化过的着色器,Sprite3D
8 min read
3D建模

Cocos2d-x:给 OPPO 手机做的优化

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 给 OPPO 手机做的优化 该优化代码只在 Cocos2d-x 3.17.2 及以上的版本起效,并且目前只在 OPPO Reno 有效果。 具体优化方案 引擎内部在两个地方添加了优化代码: * 场景加载 * 编译引擎内置的 shader 脚本 场景加载指的是从 Scene 创建到 Scene::onEnter() 被调用这段时间,所以加载资源的代码要放在 Scene::onEnter() 前,且需要在 Scene 创建后马上进行资源加载。 手动调用优化代码 程序比引擎更清楚什么时机需要更多的 CPU、GPU 资源,因此程序代码可以在需要更多资源的地方手动掉优化代码。可以在 C++ 或 Java 调用优化代码: C++ 的调用方式 Java
2 min read
3D建模

Cocos2d-x:网络访问

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 网络访问 使用 HTTP 进行网络访问 有时候我们需要从网络上获取资源数据,一种常见的解决方法就是使用 HTTP 进行网络访问。 使用 HTTP 进行网络访问有三个步骤: 1. 创建一个 HTTP 请求 HttpRequest 2. 通过 setResponseCallback() 设置一个请求完成时的回调函数 3. 使用 HttpClient 发送 HttpRequest HttpRequest 有四种类型:POST PUT DELETE UNKNOWN。除非指定请求的类型,否则就默认 UNKNOWN。HttpClient 对象负责请求的发送,也负责数据的接收。 示例: HttpRequest* request = new (std :: nothrow) HttpRequest(); request->setUrl(
1 min read
3D建模

Cocos2d-x:高级声音功能

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 高级声音功能 配置 移动设备上的游戏会遇到一些特殊的情景,比如游戏应用被切换至后台又切换回前台,正在玩游戏的时候电话来了,电话打完继续玩游戏,这些你在进行声音控制的时候都得考虑。 幸运的是,游戏引擎在设计的时候已经考虑到这些情景了,注意在 AppDelegate.cpp 中,有这样几个方法: // This function will be called when the app is inactive. When comes a phone call, // it's be invoked too void AppDelegate::applicationDidEnterBackground() { Director::getInstance()->stopAnimation(); // if you use SimpleAudioEngine, it must
2 min read
3D建模

Cocos2d-x:声音控制

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 声音控制 开始播放音乐和音效后,你可能需要对它们进行一些控制,比如暂停、停止、恢复。这很容易完成,下面介绍: 暂停 #include "SimpleAudioEngine.h" using namespace CocosDenshion; auto audio = SimpleAudioEngine::getInstance(); // pause background music. audio->pauseBackgroundMusic(); // pause a sound effect. audio->pauseEffect(); // pause all sound effects. audio->pauseAllEffects(); 停止 #include "SimpleAudioEngine.h" using namespace CocosDenshion; auto audio = SimpleAudioEngine:
1 min read
3D建模

Cocos2d-x:播放背景音乐

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 播放背景音乐 通过下面的方式,播放一个音频文件作为背景音乐,可以控制背景音乐是否循环播放。 #include "SimpleAudioEngine.h" using namespace CocosDenshion; auto audio = SimpleAudioEngine::getInstance(); // set the background music and continuously play it. audio->playBackgroundMusic("mymusic.mp3", true); // set the background music and play it just once. audio->playBackgroundMusic("mymusic.mp3", false); 播放音效 通过下面的方式,将一个音频文件作为音效。 #include "SimpleAudioEngine.
1 min read
3D建模

Cocos2d-x:物力引擎-调试

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 调试 如果你希望在刚体周围绘制红框来帮助调试,那么可以简单的将这两行添加到物理场景的初始化代码中。你当然也可以学习官方测试项目,加一个菜单,在菜单的回调函数里控制是否打开调试功能。 Director::getInstance()->getRunningScene()->getPhysics3DWorld()->setDebugDrawEnable(true); Director::getInstance()->getRunningScene()->setPhysics3DDebugCamera(cameraObjecct); 禁用物理引擎 使用内置的物理引擎是个好的选择,它稳定又强大。不过,如果你的确想使用一些其它的物理引擎,只需要在 base/ccConfig.h 文件中将 CC_USE_PHYSICS 的值改为 0 禁用内置的物理引擎即可。 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos2d-x:物力引擎-查询 (mvrlink.com)
1 min read
Cocos2d-x:物力引擎-查询
3D建模

Cocos2d-x:物力引擎-查询

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 查询 你肯定有站着一个地方往四周看的经历?你能看到离你近的地方,也能看到离你远的东西,你能判断出它们离你有多远。物理引擎也提供了类似的空间查询功能。 Cocos2d-x 提供的 PhysicsWorld 对象支持点查询,射线查询和矩形查询。 点查询 当你碰到什么东西,比如说你的桌子的时候,你可以将这种情景作为一个点查询的例子。点查询是检查一个点周围的一定距离内是否有物体。通过点查询你可以找到一个物体中距离某定点最近的点,或者找到距离一个定点最近的物体,这非常适合于判断鼠标点击拾取的对象,也可以利用它进行一些其它的简单感知。 射线查询 当你四处看的时候,在你视线内的某些物体肯定会引起你的注意,你可以将这种情景作为一个射线查询的例子。射线查询是检查从一个定点发出的射线是否相交于一个物体,如果相交可以获取到一个交叉点,这非常适合于判断子弹(忽略子弹的飞行时间)是否命中。 示例: void tick(float dt) { Vec2 d(300 * cosf(_angle), 30
3 min read
Cocos2d-x:物力引擎-碰撞
3D建模

Cocos2d-x:物力引擎-碰撞

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 碰撞 你是否看到过车祸?是否跟什么物体相撞过?就像车的相撞一样,刚体对象也可以互相碰撞,当它们互相接触的时候,就认为发生了碰撞。当碰撞发生时,会触发一系列事件,它可以被完全忽略。 碰撞筛选 碰撞筛选允许你启用或者阻止形状之间碰撞的发生,引擎支持使用类型,组位掩码来进行碰撞筛选。 Cocos2d-x 有 32 个支持的碰撞类型,对于每个形状都可以指定其所属的类型。还可以指定有哪些类型可以与这个形状进行碰撞,这些是通过掩码来完成的。例如: auto sprite1 = addSpriteAtPosition(Vec2(s_centre.x - 150,s_centre.y)); sprite1->getPhysicsBody()->setCategoryBitmask(0x02); // 0010 sprite1->getPhysicsBody()->setCollisionBitmask(0x01); // 0001
6 min read
3D建模

Cocos2d-x:物力引擎-术语和概念

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 术语和概念 为了更好的理解物理引擎,需要先了解下面的一些术语,概念。 刚体(Bodies) 刚体(Bodies) 描述了抽象物体的物理属性,包括:质量、位置、旋转角度、速度和阻尼。Cocos2d-x 中用 PhysicsBody 对象表示刚体。当刚体和形状关联后,刚体对象才具有几何形状,未关联形状, 刚体只是一个抽象物体的物理属性集。 材质(Material) 材质(Material) 描述了抽象物体的材料属性: * density:密度,用于计算物体的质量 * friction:摩擦,用于模拟物体间的接触滑动 * restitution:恢复系数,模拟物体反弹的一个系数,系数一般设为 0 到 1 之间。0 代表不反弹,1 代表完全反弹。 形状(
7 min read
3D建模

Cocos2d-x:使用脚本

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 使用脚本 脚本组件 脚本组件是用来扩展 C++ 节点对象的一种方式,你可以将脚本组件绑定到节点对象上,然后脚本组件就能收到 onEnter,onExit 和 update 事件。 脚本组件支持两种脚本语言 JavaScript 和 Lua,使用的脚本组件应该和绑定脚本的语言类型对应,比如 ComponentJS 用来绑定 JavaScript 脚本,ComponentLua 用来绑定 Lua 脚本。有了脚本组件,你就可以在 Cocos2d-x 的项目中,很方便的使用脚本进行一些控制。需要注意的是,在一个项目中不能混用脚本组件,也就是说一个项目要么只使用 JavaScript 脚本,要么只使用 Lua 脚本。 使用 Lua 脚本: // create a Sprite and
2 min read
Cocos2d-x:进阶话题
3D建模

Cocos2d-x:进阶话题

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 进阶话题 广告牌(BillBoard) 广告牌(BillBoard)是一种特殊的精灵对象,它总是面对摄像机,摄像机旋转,广告牌对象也会跟着旋转。广告牌在 3D 游戏中是非常常见的,比如 3D 角色头顶的文字,血条,比如滑雪比赛场景里的树木,岩石。 这就是摄像机(Camera)与广告牌(BillBoard)关联的方式: Sprite 是 Billboard 的父类,因此广告牌的大部分功能都与精灵一样。 使用下面的方式可以创建一个广告牌: auto billboard = BillBoard::create("Blue_Front1.png", BillBoard::Mode::VIEW_POINT_ORIENTED); 你可以更改广告牌的模式为,广告牌面向摄像机 XOY 平面,这样创建
5 min read
3D建模

Cocos2d-x:常用工具

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 常用工具 3D 编辑器 3D 编辑器是用于构建 3D 模型的工具集合,有商业的和免费的可用,这是其中一些受欢迎的编辑器: * Blender (Free) * 3DS Max * Cinema4D * Maya 大多数 3D 编辑器都能将文件保存成通用的格式,方便文件在其它编辑器中使用,同时也方便了游戏引擎对 3D 模型的导入和使用。 Cocos2d-x 提供的工具 Cocos2d-x 提供了一个转换工具,可以将编辑器生成的通用格式转换为引擎支持的格式。 fbx-conv 命令行 fbx-conv 允许将 FBX 格式转换为 Cocos2d-x 专有格式。 FBX 是最受欢迎的 3D 文件格式,被所有编辑器支持。 命令行工具默认的导出文件格式是 .c3b 。 命令行的使用: fbx-conv [-a|-b|
2 min read
Cocos2d-x:地形(Terrain)
3D建模

Cocos2d-x:地形(Terrain)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 地形(Terrain) 地形 Terrain 是 3D 游戏中重要的组成部分,地形就是通过载入一张高度图和若干张细节纹理,从而在场景中绘制若干高低不平的几何体,用以在游戏场景中模拟自然中的沙漠,草原等景象。从地形的资源构成角度来说,包含了下面几个元素: 高度图 高度图从本质而言,也是一张图片,但是图中的每一个像素的颜色值并不被当做颜色,而是被视为一个高度值。Terrain 对象通过高度图所给的高度信息,加以适当的缩放,构建出整个地形的网格结构。 细节图 如果说高度图确定了整个地形的几何形状,那么细节图则确定了地形的外观。通过将细节图贴在地形上,可以制造非常好的表现效果。最多可以使用四个纹理作为细节图。 Alpha贴图 Alpha贴图用于控制细节图是在地形上何处以及如何绘制的。Alpha贴图从本质而言,也是一张图片,但是它将图片中每个像素中的 Red,Green,Blue 以及Alpha通道对应四张细节图在地形的某个位置上,每一张细节图颜色比例是多少。通过这种方式,我们就可以在地形上
4 min read
Cocos2d-x:光照(Light)
3D建模

Cocos2d-x:光照(Light)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 光照(Light) 光照对于烘托一个游戏的气氛非常重要,Cocos2d-x 目前支持四种光照技术。使用不同的光照技术,可以获得不同的光照效果。 环境光 环境光 AmbientLight 对场景中的所有内容均匀的应用光照,模拟正常办公环境中的光照可以使用这种方式。 代码: auto light = AmbientLight::create (Color3B::RED); addChild(light); 效果: 定向光 定向光 DirectionLight 是来自特定方向的平行光。因为所有的光线都是平行的,对于场景中的每个物体光的方向都保持一致,所以物体和光源的位置保持怎样的关系都无所谓。定向光的一个很好例子是太阳光。 代码: auto light = DirectionLight::create(Vec3(-1.0f, -1.0f, 0.0f), Color3B::RED); addChild(light)
3 min read
3D建模

Cocos2d-x:天空盒(Skybox)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 天空盒(Skybox) 天空盒(Skybox) 是整个场景的一个包裹,显示了几何之外的世界。你可以使用 Skybox 来模拟无限的天空,山脉等现象。 Skybox 的创建: // create a Skybox object auto box = Skybox::create(); // set textureCube for Skybox box->setTexture(_textureCube); // attached to scene _scene->addChild(box); 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos2d-x:立方体纹理(TextureCube) (mvrlink.com) 下一篇:Cocos2d-x:光照(
1 min read
3D建模

Cocos2d-x:立方体纹理(TextureCube)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 立方体纹理(TextureCube) 立方体纹理是放置在立方体各个表面上的六个单独的方形纹理的集合。大多数情况下,它们用于在物体上显示无限远的反射,类似于天空盒在背景中显示远处的风景。一个展开的立方体纹理可能是这样的: 在 Cocos2d-x 中,这样创建立方体纹理: // create a textureCube object with six texture assets auto textureCube = TextureCube::create("skybox/left.jpg", "skybox/right.jpg", "skybox/top.jpg", "skybox/bottom.jpg", "skybox/front.jpg", "skybox/back.jpg"); // set cube map texture parameters
1 min read
3D建模

Cocos2d-x:相机(Camera)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 相机(Camera) 玩家看到的 3D 游戏世界,就是游戏制作中 相机(Camera) 对象查看到的场景,就如,观众看一部电影,看到的是电影拍摄时相机查看到的现实世界。游戏制作中的相机与电影拍摄时的相机作用是一样的。Camera 对象继承了 Node 对象,因此 Camera 支持大多数 Action。 相机有两种,一种是透视相机,一种是正交相机。透视相机看到的游戏世界具有远近效果,像这样: 就好像眼睛观察现实世界,近处的对象较大,远处的对象较小。第一人称的游戏通常使用透视视角渲染。正交相机看到的游戏世界没有远近效果,看到的只是游戏世界一个方向的投影,像这样: 正交相机看到的 3D 对象,大小不会因为距离而变化。游戏中的迷你地图通常是用正交相机渲染,需要上帝视角的游戏,也会使用正交相机渲染。 使用相机 不用担心,相机听起来很复杂,但使用 Cocos2d-x 操作相机很容易。
3 min read
3D建模

Cocos2d-x:3D 动画

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 3D 动画 我们知道 3D 精灵对游戏很重要,也学会了如何操纵,但是可能还希望能有一些更丰富的效果。 那就添加动画吧! 要运行 3D 动画,你需要使用 Animation3D 和 Animate3D 对象,首先用 Animation3D 加载一个动画文件,然后使用 Animate3D 完成添加。 示例: // the animation is contained in the .c3b file auto animation = Animation3D::create("orc.c3b"); // creates the Action with Animation object auto animate = Animate3D:
2 min read
Cocos2d-x:3D 精灵
3D建模

Cocos2d-x:3D 精灵

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 3D 精灵 就像 2D 游戏一样,3D 游戏也有精灵对象,Cocos2d-x 提供的 3D 精灵对象是 Sprite3D,3D 空间位置有三个方向的自由度,类似的 Sprite3D 的位置由 (x, y, z) 三个坐标值决定。 Sprite3D 在许多方面都和普通的 Sprite 一样。 创建并加载: auto sprite = Sprite3D::create("boss.c3b"); //c3b file, created with the FBX-converter sprite->setScale(5.f); //sets the object scale
3 min read
NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号