3D建模

A collection of 1733 posts
3D建模

Cocos Creator:公共函数库

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 公共函数库 可以在 资源管理器/internal/chunks/common/ 文件夹下找到不同分类的函数库头文件。 公共库中的函数不依赖任何内部数据,可以当作工具函数直接使用。 使用示例 #include #include 目录与功能应表 文件夹名函数用途主要文件color色彩相关功能(颜色空间、tone-mapping 等)aces, gammadata数据相关功能(压缩解压缩等)packing, unpackdebugDebug View 相关功能effect场景特效相关功能(水、雾等)foglighting光照相关功能(bxdf、反射、衰减、烘焙等)brdf, bxdf, light-mapmath数学库(坐标变换、数值判定和运算等)coordinates, transformmesh模型相关功能(材质转换、模型动画等)material, vat-animationshadow阴影相关功能(p
1 min read
3D建模

Cocos Creator:Cocos Shader 内置全局 Uniform

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Cocos Shader 内置全局 Uniform 要在 Cocos Shader 中使用内置变量 Uniform,需要包含对应的着色器片段(Chunk)即可,如下代码所示: //local uniforms #include //global uniforms #include 以下是常用内置变量,按所在着色器片段进行分组,列表如下: cc-local.chunk NameTypeInfocc_matWorldmat4模型空间转世界空间矩阵cc_matWorldITmat4模型空间转世界空间逆转置矩阵 cc-global.chunk NameTypeInfocc_timevec4x:游戏运行时间(秒) y:帧时间(秒) z:游戏运行帧数 w:未使用cc_screenSizevec4xy:屏幕尺寸 zw:屏幕尺寸倒数cc_screenScalevec4xy:屏幕缩放
2 min read
Cocos Creator:着色器片段(Chunk)
3D建模

Cocos Creator:着色器片段(Chunk)

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 着色器片段(Chunk) 着色器片段(Chunk)是一种跨文件代码引用机制,使着色器代码片段可以在不同的文件之间进行复用。 着色器片段的语法基于 GLSL 300 ES,在资源加载时会进行预编译,生成目标 Shader 代码。 创建着色器片段 在 资源管理器 面板中点击右键,选择 创建 -> 着色器片段(Chunk): 便可创建一个默认名为 chunk 的着色器片段,如下图: Include 机制 在标准 GLSL 语法基础上,Cocos Shader 引入了 C 语言风格的语法扩展 — Include 机制。 通过 include 机制,可以在任意 Shader 代码(CCProgram
3 min read
3D建模

Cocos Creator:预处理宏定义

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 预处理宏定义 为了更好地管理代码内容,Cocos Shader 提供了预处理宏机制,它有几个特性: 1. 不同组合的宏会生成不同的代码 2. 生成的代码无冗余、执行高效 3. 使用过的宏定义会显示在材质面板上,方便调试 4. 以 CC_ 开头的宏不会显示在材质面板上 以默认的 Surface Shader 为例,当它被材质使用时,你在材质的 属性检查器 中,可以看到如下图所示的宏开关: 宏定义注意事项 宏定义有一些默认的规则。 默认值 所有的宏定义默认值都是 false,因此当定义一个简单宏定义(例如用于布尔开关的宏)时,无法指定其默认值,但可通过 属性检查器 或代码修改。 如果设计上某些宏之间存在互斥关系(不能同时为 true),可以通过使用 tag 声明的宏来处理,详情请参考下文
4 min read
3D建模

Cocos Creator:GLSL 语法简介

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 GLSL 语法简介 GLSL 是为图形计算量身定制的用于编写着色器的语言,它包含一些针对向量和矩阵操作的特性,使渲染管线具有可编程性。本章主要介绍在编写 Shader 时常用的一些语法,包括以下几个方面: * 变量 * 语句 * 限定符 * 预处理宏定义 变量 变量及变量类型 变量类型说明Cocos Shader 中的默认值Cocos Shader 中的可选项bool布尔型标量数据类型false无int/ivec2/ivec3/ivec4包含 1/2/3/4 个整型向量0/[0, 0]/[0, 0, 0]/[0, 0, 0, 0]无float/vec2/vec3/vec4包含 1,2,3,4
8 min read
3D建模

Cocos Creator:YAML 101

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 YAML 101 Cocos Shader 使用的是符合 YAML 1.2 标准的解析器,这意味着 Cocos Shader 与 JSON 是完全兼容的,直接使用 JSON 也完全不会有问题,例如: "techniques": [{ "passes": [{ "vert": "skybox-vs", "frag": "skybox-fs", "rasterizerState": { "cullMode": "none" } # ... }] }] 当然这也意味着繁琐的语法,所以 YAML 提供了一些更简洁的数据表示方式: 所有的引号和逗号都可以省略 key1: 1 key2: unquoted string 注意:冒号后的空格不可省略 行首的空格缩进数量代表数据的层级1 object1: key1: false object2: key2:
2 min read
3D建模

Cocos Creator:Pass 可选配置参数

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 Pass 可选配置参数 Pass 中的参数主要分两个部分: * 开发者可自定义的 属性检查器 面板参数 properties * 引擎提供的用于控制渲染管线状态的 PipelineStates Properties properties 用于将 Shader 中定义的 uniform 进行别名映射。这个映射可以是某个 uniform 的完整映射,也可以是具体某个分量的映射(使用 target 参数),代码示例如下: properties: albedo: { value: [1, 1, 1, 1] } # uniform vec4 albedo roughness: { value: 0.8, target: pbrParams.g } # uniform vec4 pbrParams offset:
12 min read
Cocos Creator:着色器语法
3D建模

Cocos Creator:着色器语法

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 着色器语法 Cocos Creator 中的着色器(Cocos Shader ,文件扩展名为 *.effect),是一种基于 YAML 和 GLSL 的单源码嵌入式领域特定语言(single-source embedded domain-specific language),YAML 部分声明流程控制清单,GLSL 部分声明实际的 Shader 片段,这两部分内容相互补充,共同构成了一个完整的渲染流程描述。 注意:推荐使用 Visual Studio Code 编写 Cocos Shader,并在应用商店中安装 Cocos Effect 扩展,提供编写时的语法高亮提示。 语法框架概览 Cocos Shader 通常由两个部分组成: * CCEffect:用于声明渲染技术(Technique)、渲染过程(
5 min read
Cocos Creator:无光照
3D建模

Cocos Creator:无光照

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 无光照 无光照是最基础的着色模型,这种模型下,引擎的任何光源都无法影响其最终效果,适用于: * 不受光源影响的物体 * 画面要求不高或性能要求高的场景 在材质的 Effect 属性中将着色器切换为 Cocos Creator 内置的无光照着色器(builtin-unlit.effect)时,如下图: 制作标准 技术选型时,若要在使用 unlit 材质的模型下使用光照,可将光照信息绘制在纹理贴图上,然后将纹理贴图拖拽到材质的 MainTexture 属性框中。 若要使用真实光照,可参考:真实物理渲染 参数 参数说明mainTexture主纹理tilingOffset模型 UV 的缩放和偏移量,xy 对应缩放,zw 对应偏移mainColor主颜色,该颜色会在片元着色器内被处理colorScale和主颜色相乘alphaThreshold用于半透明测试,在启用 USE_ALPHA_TEST 的情况下,小于该值的像素会被抛弃(discard) 宏
2 min read
Cocos Creator:卡通渲染
3D建模

Cocos Creator:卡通渲染

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 卡通渲染 相对于 真实渲染(Physical Based Rendering - PBR),非真实渲染(Non-Photorealistic Rendering - NPR)通过特性化渲染,实现与真实世界完全不同的美术表现。 卡通渲染(Toon Shading)是非真实渲染的常见效果之一。 通常卡通渲染的内容包含以下几个基础部分: * 对物体进行描边 * 降低色阶的数量并模拟色阶不连续现象 * 明暗色调分离 * 阴影形状干扰等 渲染过程 Cocos Creator 提供了内置卡通渲染着色器 builtin-toon.effect,以此为例,我们在材质资源中将 Effect 属性切换为 builtin-toon.effect,可以看到卡通渲染由两个渲染过程(Pass)组成: * 渲染过程 0(Pass 0):用于描边,默认不启用,可勾选右侧的
6 min read
Cocos Creator:基于物理的光照模型
3D建模

Cocos Creator:基于物理的光照模型

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 基于物理的光照模型(Physically Based Rendering - PBR) Cocos Creator 从 v3.0 开始提供了基于物理渲染(PBR)的光照着色器:builtin-standard.effect。PBR 根据现实中光线传播原理和能量守恒定律,模拟出近似于真实物理光照的效果。 PBR 的优势在于: * 真实性:基于物理原理的渲染让最终效果更加逼真 * 一致性:美术制作流程规范化、制作标准统一化 * 复用性:模型材质与光照环境分离,在所有 PBR 项目中均可复用 使用 PBR 制作材质和纹理 在 资源管理器 面板中手动创建的材质,默认使用的是 builtin-standard.effect 着色器,我们称之为 PBR 材质,PBR 材质使用
13 min read
3D建模

Cocos Creator:内置着色器

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 内置着色器 引擎提供了一系列通用的内置着色器,位于编辑器 资源管理器 面板的 internal -> effects 目录下。双击着色器文件即可在外部 IDE 打开进行查看和编辑(前提是需要在 偏好设置 -> 外部程序 中配置 默认脚本编辑器)。 Cocos Creator 将内置着色器大致归类为以下几种: * internal:内置引擎功能相关着色器,比如编辑器内用 gizmo,几何体渲染等等。用户通常不需要关注这些。 * pipeline:管线特效着色器,包括延迟光照、后效和抗锯齿等。 * util:存放一些零散的内置着色器,例如 DCC 材质导入和序列帧动画等。用户通常不需要关注这些。 * for2d:2D 渲染相关着色器,如 spine 和 sprite 动画等。 * particles:
3 min read
Cocos Creator:着色器创建与使用
3D建模

Cocos Creator:着色器创建与使用

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 着色器创建与使用 创建着色器 在 资源管理器 面板中点击左上角的 + 号按钮(或者在 Assets 目录下点击右键),在弹出菜单中选择 着色器(Effect) 或者 表面着色器(Surface Shader), 便可创建新的着色器资源。 两种类型的着色器区别: * 着色器(Effect):简单的无光照着色器,可参考 internal/effects/builtin-unlit.effect * 表面着色器(Surface Shader):基于 PBR 的着色器,可参考 internal/effects/builtin-standard.effect 我们以 表面着色器(Surface Shader) 为例,引擎会在 资源管理器 中创建一个默认名为 surface-effect
4 min read
3D建模

Cocos Creator:材质系统类图

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 材质系统类图 材质系统控制着每个模型最终的着色流程与顺序,在引擎内相关类间结构如下: 上述图中的 Material(材质)和 EffectAsset(着色器资源)都属于资源。 * Material 负责 EffectAsset 声明的 Uniform、宏数据存储以及 Shader 使用和管理,这些信息都会以材质资源的可视化属性的形式展示在 属性检查器 面板中。Material 通常是被渲染器组件使用,所有继承自 RenderableComponent 的组件都是渲染器组件,例如 MeshRenderer、Sprite 等。更多内容请参考 材质资源。 * EffectAsset 负责提供属性、宏、Shader 列表定义。每个 EffectAsset 最终都会被编译成引擎内使用的格式,引擎再根据格式进行解析和应用。所有解析后的 EffectAsset 信息都会被注册到引擎内的 ProgramLib 库里,
1 min read
Cocos Creator:内置材质
3D建模

Cocos Creator:内置材质

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 内置材质 Creator 在 资源管理器 面板的 internal/default_materials/ 目录下内置了几种常见的材质,其使用的 Effect 为 内置着色器 ,内置材质的属性都不允许修改。 内置材质说明default-materail非透明物体的 标准材质default-materail-transparent半透明物体的 标准材质particle-add标准粒子材质ui-sprite-material精灵的标准材质 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator:程序化使用材质 (mvrlink.com) 下一篇:Cocos Creator:材质系统类图 (mvrlink.com)
1 min read
Cocos Creator:程序化使用材质
3D建模

Cocos Creator:程序化使用材质

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 程序化使用材质 创建材质 材质(Material)资源可以看成是着色器资源(EffectAsset)在场景中的资源实例。 Creator 支持在 资源管理器 中手动 创建材质资源,同时也支持通过 IMaterialInfo 接口在脚本模块中程序化地创建材质。IMaterialInfo 的可配置参数包括: * effectAsset/effectName:effect 资源引用,指定使用哪个 EffectAsset 所描述的流程进行渲染。(effectAsset 和 effectName 二者必须选其一) * technique:指定使用 EffectAsset 中的第几个 technique,默认为第 0 个。 * defines:宏定义列表,指定开启哪些 预处理宏定义,默认全部关闭。 * states:管线状态重载列表,指定对渲染管线状态(深度模板透明混合等)有哪些重载,
4 min read
Cocos Creator:从 Maya 中导出 FBX 模型资源
3D建模

Cocos Creator:从 Maya 中导出 FBX 模型资源

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 从 Maya 中导出 FBX 模型资源 导出步骤 选中要导出的模型: 选中主菜单 File -> Export Selection Option 展开导出选项: 将 File type 设置为 FBX export, 点击 export selection 按钮: 将 Current Preset 设置为 Autodesk Media and Entertainment: 开启 Embed Media 选择导出路径,命名为 simpleBox, 点击 Export Selection 导出文件 备注:更多信息可参阅 Maya FBX
2 min read
Cocos Creator:从 3ds Max 中导出 FBX 模型资源
3D建模

Cocos Creator:从 3ds Max 中导出 FBX 模型资源

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 从 3ds Max 中导出 FBX 模型资源 导出步骤 在 3ds Max 选中要导出的模型 选中主菜单 File -> Export -> Export Selected 展开导出选项: 将 Save as type 设置为 .fbx, 点击 save 按钮 将 Current Preset 设置为 Autodesk Media and Entertainment: 开启 Embed Media: 点击 OK 导出文件: 备注 : 更多信息请参阅 3DS Max
2 min read
Cocos Creator:导入从 DCC 工具导出的模型
3D建模

Cocos Creator:导入从 DCC 工具导出的模型

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 导入从 DCC 工具导出的模型 目前大多数数字内容制作(Digital Content Creation, DCC)工具(3ds Max、Maya、Blender)都能导出 FBX 和 glTF 这两种格式的模型文件,所以这些工具导出的内容都能在 Cocos Creator 中得到良好的展示。 导出 FBX 因为 DCC 工具的坐标系和游戏引擎的坐标系可能不一致,所以在导出模型时需要进行一些变换才能在引擎中得到想要的结果。例如:Blender 的坐标系为 X 轴朝右,Y 轴朝里,Z 轴朝上,而 Cocos Creator 3.x 的坐标系为 X 轴朝右,Y
4 min read
3D建模

Cocos Creator:批量蒙皮网格渲染器组件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 批量蒙皮网格渲染器组件(SkinnedMeshBatchRenderer) 批量蒙皮网格渲染器组件(SkinnedMeshBatchRenderer)用于将同一个骨骼动画组件控制的所有子蒙皮模型网格合并渲染。 属性功能Operation对属性的任何修改不会立即生效,需要点 Cook 按钮重新计算才能应用。Materials合批后使用的“母材质”需要使用自己定制的合批版 effect。LightmapSettings用于烘焙 Lightmap,详情请参考 光照贴图。ShadowCastingMode指定当前模型是否会投射阴影,需要先在场景中 开启阴影。ReceiveShadow指定当前模型是否会接收并显示其它物体产生的阴影效果,需要先在场景中 开启阴影。该属性仅在阴影类型为 ShadowMap 时生效。SkinningRoot骨骼蒙皮的根节点,一般为 SkeletalAnimation 组件所在节点。AtlasSize合图生成的最终图集的边长。BatchableTextureNames材质中真正参与
2 min read
3D建模

Cocos Creator:蒙皮网格渲染器组件

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 蒙皮网格渲染器组件(SkinnedMeshRenderer) 蒙皮网格渲染器组件(SkinnedMeshRenderer)主要用于渲染蒙皮模型网格。 导入模型资源 后,若模型网格中带有蒙皮信息,在使用模型时,SkinnedMeshRenderer 组件便会自动添加到模型节点上。 属性 属性功能Materials网格资源允许使用多个材质资源,所有材质资源都存在 materials 数组中。 如果网格资源中有多个子网格,那么 Mesh Renderer 会从 materials 数组中获取对应的材质来渲染此子网格。LightmapSettings用于烘焙 Lightmap,详情请参考 光照贴图。ShadowCastingMode指定当前模型是否会投射阴影,需要先在场景中 开启阴影。ReceiveShadow指定当前模型是否会接收并显示其它物体产生的阴影效果,需要先在场景中 开启阴影。该属性仅在阴影类型为 ShadowMap 时生效。Mesh指定渲染所用的网格资源,网格渲染器组件中 网格资源 部分
2 min read
Cocos Creator:MeshRenderer 组件参考
3D建模

Cocos Creator:MeshRenderer 组件参考

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 MeshRenderer 组件参考 MeshRenderer(网格渲染器)组件用于显示一个静态的 3D 模型。通过 Mesh 属性设置模型网格,通过 Materials 属性控制模型的显示外观。 在 属性检查器 中点击 添加组件 -> Mesh -> MeshRenderer 即可添加 MeshRenderer 组件。 MeshRenderer 属性 属性功能Materials网格资源允许使用多个材质资源,所有材质资源都存在 materials 数组中。 如果网格资源中有多个子网格,那么 Mesh Renderer 会从 materials 数组中获取对应的材质来渲染此子网格。Dynamic Shadow Settings动态阴影配置,详情请参考下方 动态阴影配置 文档Bake Settings烘焙配置,详情请参考下方 烘焙配置
7 min read
Cocos Creator:基于图像的光照示例
3D建模

Cocos Creator:基于图像的光照示例

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 基于图像的光照示例 在 Cocos Creator 中开发者可通过组合基于图像光照的功能。这些功能包含: * 通过 天空盒 的烘焙反射卷积图功能以提供更好的环境反射效果 * 通过 光照贴图 将光照信息烘焙到贴图以提高光照性能 * 通过 光照探针/反射探针 检测物体间的反射信息 本文将从艺术资产工作者的工作流演示如何在您的场景中烘焙基于图像的照明。 准备工作 由于光照探针和反射探针都是针对基于物理的光照模型,因此在制作美术资源时,请遵循 PBR 工作流程。 请提前准备好使用以下着色器的材质文件;或通过 导入从 DCC 工具导出的模型 导出,导入到 资源管理器 后会自动识别模型内的材质并将其着色器转化为引擎支持的 PBR 着色器。 * builtin-standard:内置标准 PBR 着色器 * dcc/imported-metallic-roughness:基于 metallic-roughness 工作流导出的模型使用的着色器 * dcc/imported-specula
5 min read
Cocos Creator:反射探针美术工作流
3D建模

Cocos Creator:反射探针美术工作流

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 反射探针美术工作流 烘焙反射探针工作流 * 在场景内创建 反射探针 节点 * 将需要烘焙反射的节点的 Mobility 属性修改为 Static 在需要烘焙反射的节点的 属性检查器 上下拉找到 Reflection Probe Settings,并调整其对应的属性: * Reflection Probe: 选择反射探针的类型 Bake To Reflection Probe: 勾选是否将该网格渲染器的反射信息烘焙至反射探针相关的贴图 详情请参考 MeshRenderer 组件参考 烘焙 * 点击 属性检查器 上的 Bake 按钮,烘焙当前已选择的反射探针: * 主菜单上选择 项目 -> 光照烘焙 -> 反射探针,打开 反射探针面板,通过点击面板上的烘焙按钮进行烘焙。 检查烘焙结果 烘焙完成后,资源管理器
3 min read
Cocos Creator:反射探针面板
3D建模

Cocos Creator:反射探针面板

推荐:将NSDT场景编辑器加入你的3D工具链 3D工具集:NSDT简石数字孪生 反射探针面板 通过主菜单上的 项目 -> 光照烘焙 -> 反射探针 可以打开反射探针烘焙面板。 反射探针烘焙面板会对项目中所有含有 反射探针 组件的节点进行烘焙。 烘焙的结果会放在项目的 资源管理器 内以 reflectionProbe_ 命名。 属性 属性说明Bake All Reflection Probes烘焙按钮,点击后会开始烘焙整个场景内所有的反射探针Clear All Bake Results清除烘焙的结果,点击后会将项目内已经存在的反射探针烘焙结果Cancel取消当前的烘焙进程,仅在烘焙按钮被按下后起效 由3D建模学习工作室 翻译整理,转载请注明出处! 上一篇:Cocos Creator:反射探针 (mvrlink.com) 下一篇:Cocos Creator:反射探针美术工作流 (mvrlink.com)
2 min read
NSDT场景编辑器 | NSDT 数字孪生 | GLTF在线编辑器 | 3D模型在线转换 | UnrealSynth虚幻合成数据生成器 | 3D模型自动纹理化工具
2023 power by nsdt©鄂ICP备2023000829号