首页 > 其他分享 >Cocos Creator 2D/3D基础/ 第003节3D模型的基本概念

Cocos Creator 2D/3D基础/ 第003节3D模型的基本概念

时间:2023-10-18 14:12:56浏览次数:44  
标签:动画 Cocos 模型 003 坐标 顶点 三角形 3D

3.1 计算机如何制作一个3D模型

 

讲述这个问题之前,我们先来看下现实生活中我们要做一个模型,应该如何做呢?首先我们要把模型的形状给雕刻构建出来,现实生活中的物体都是由分子组成的连续的表面,计算机是离散的无法做到这点,所以计算机通过微分的方式,把一个曲面分成”多个平面”来模拟实现连续的物体表面。常见的平面我们有三角形,四边形, 五边形等,任何一个平面都可以分割成若干三角形,所以计算机所指的面都是三角形,这样做有一个好处,底层与显卡只要处理同一种面(三角形)就可以了,这样渲染流水线处理会简单统一。每个三角形都是由空间中的3个顶点来确定的,当空间中的3个点定下来,他们就能确定一个三角形平面。三角形的3个顶点,我们在3D里面通常称为面的顶点。

 对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。

1.png

空间的物体也可以由若干三角形来构成,雕刻成形状,如果物体是曲面,那么就会通过将曲面分小成若干小三角形来组成曲面形状。理论上来说,三角形分的越小,越接近于真实的曲面,当然三角形分的越小,面的数目越多,处理起来性能也越差。一般在建模的时候,人眼看上去接近曲面就可以了。

2.png

所以计算机制作3D模型的第一个步骤就是建模,建模的时候,会先确定一个坐标系(原点与x, y,z轴),这个坐标系我们通常叫做模型坐标系,所有的三角形面的顶点的位置都是基于这个坐标系的。模型中顶点的坐标我们又叫做顶点的模型坐标。由此我们可以得到如下推论:

顶点的世界坐标 = 物体的世界坐标 + 顶点的模型坐标

(注:这里的+是叠加变换,包括旋转等,不是简单的坐标相加)

建模完成以后,物体的形状就被雕刻出来了,接下来就是给每个面涂上颜色。发挥一下我们的想象力,我们用一张白纸包住整个模型,然后用图钉基于面的每个顶点把图钉按下去,这样这个白纸就会贴合固定到模型上了。接下来美术就在白纸上涂颜色,图好以后,模型上色完成,变成物体的形状。

3.png

接下来我们再把”图钉”取下来,把贴在模型上的白纸展开出来,我们就得到了上好颜色的纸,我们叫做纹理贴图,如图所示:

4.png

刚才每个顶点的固定图钉,都会在纹理贴图上留下一个小针孔(如图中的紫色点),这个针孔所在的位置叫做顶点的纹理坐标。纹理坐标是一个二维坐标(x, y),坐标系的原点是左下角(0, 0), 右上角是1, 1, 根据这个标准,来确定纹理每个顶点的纹理坐标。到此我们就建好了一个模型。美术交付的时候就包含了 fbx模型文件与模型的纹理贴图,当然还有其它的一些细节增强的贴图,如法线贴图等,fbx存放的是模型的顶点数据等,纹理贴图就是物体的表面颜色。最后总结以下美术3D建模的一些基本概念:

(1)3D模型是由一个个的三角形面组成的形状,每个三角形由3个顶点组成,三角形组成的模型形状,像网格一样,所以我们把建模的三角形面的数据又叫做网格数据,后文成Mesh。

(2) 每个三角形的面有3个顶点,很多同学理解为顶点就是顶点坐标,其实这个说法是错误的,3D中的顶点包含了: 顶点的坐标(position), 顶点的纹理坐标(uv), 顶点的法线坐标(Normal)等。所以顶点是这些数据的集合,并不单指模型顶点的位置

 

3.2 模型动画

 

模型制作好以后,有些人物角色还需要做模型动画, 让角色能有动作。模型动画其实就是模型的顶点在一段时间内的连续变换,比如一组待机动画,哪些顶点会动,如何动,每个顶点在动画中每一帧的的位置如何,这样每一帧,顶点的位置不一样,然后把每一帧播放出来,计算出顶点在这一帧的位置(动画采样), 每一帧,顶点的位置不同,人眼会把每帧的相关形状补间起来,形成了动画的感觉,叫做模型动画,比如3D鱼模型的游动,在每一帧,尾巴处的顶点位置不同,导致物体的形状不同,连起来就形成了3D动画。模型顶点的动画运动数据,也可以存放到fbx文件里面。

5.png

今天的分享就到这里了,希望帮助你建立一些基本的3D概念。关注我们学习更多游戏开发相关的知识。

标签:动画,Cocos,模型,003,坐标,顶点,三角形,3D
From: https://www.cnblogs.com/bycw/p/17771933.html

相关文章

  • Cocos Creator 2D/3D基础/ 第002节创建项目与显示第一个物体
    2.1创建第一个项目 从本节开始我们将详细的来开始学习CocosCreator的开发基础与操作。我们先来创建一个项目,打开CocosDashboard,选择”新建”,选3D游戏模板”Empty(3D)”,输入项目的名字(classGame)与路径(D:\Home\workspace),(注意项目的名字不要用中文与空格,要用英文缩写,......
  • 初识Cocos Creator
    1.1 Cocos不同时期与产品 刚接触Cocos家族的时候,会有很多个Cocos的版本与分支,比如Cocos2d,Cocos2d-x,CocosCreator1.x,CocosCreator2.x,CocosCretor3D,CocosCreator3.x,CocosDashboard,等我们先把Cocos的主要产品脉络梳理一遍。智能手机刚出来的时候,国外做了......
  • cesium 3dtils 房屋打组 实现单个房屋选中效果
    效果 scenetree.json记录的是模型的数据,这种element的节点上记录的name就是建模时给建筑物打组时起的名字,后面cesium创建模型时,建筑物上的每个feature都会添加这个name参数,根据这个name参数可以找到这个模型中的所有feature  handler.setInputAction((event)=>......
  • 【dp】【竞赛图的性质】ARC163D Sum of SCC 题解
    ARC163D发现这个竞赛图一定能被分为两个集合\(A\),\(B\)。满足\(\forallu\inA,v\inB\),均有\(u\tov\inE\)。答案就是划分这两个集合的方案数。证明:首先,竞赛图缩完点后一定是一条链,对强连通分量进行标号,满足编号小的强连通分量指向编号大的强连通分量。不妨令竞赛图\(G\)......
  • 3D Math for Graphics and Game笔记
    这个机器人的原点在世界坐标系下的(4.5,1.5),而她右肩膀上的那个灯的模型坐标系为(-1,5),怎样计算这个灯的世界坐标呢?开始:获取原点,这个原点为(4.5,1.5)向右移动一个位置,机器人的"左边"是[0.87,0.50],这样得到的位置为(4,5,1.5)+(-1)X[0.87,0.50]=(3.63,1)向上移动5个位......
  • 【Unity3D】程序纹理简单应用
    1几何纹理应用​本文所有案例的完整资源详见→Unity3D程序纹理简单应用。1.1边框​1)边框子图​Border.shadersubgraph​说明:Any节点用于判断输入向量中是否存在一个分量非零,Branch节点根据输入的真假走不同的分支,详见→ShaderGraph节点。​2)圆环......
  • 【Unity3D】水面特效
    1前言​水波特效中通过屏幕后处理实现了环形水波效果,本文通过ShaderGraph实现了模拟水面特效,包含以下特效细节。ShaderGraph基础知识详见→ShaderGraph简介、ShaderGraph节点、程序纹理简单应用。深水区和浅水区颜色差异;水面有波纹,并且在移动;水面起伏波动;水面......
  • Unity3D学习记录02——PloyBrush场景搭建
    首先在Window->PackageManager里面搜索PolyBrush,下载后将URP的Shader样例导入 导入后Asset文件夹下会有Sample的文件夹,在菜单栏Tools->PolyBrush->PolyBrushWindow打开窗口这个窗口最上面的五个,第一个是用来调整地形高低的,第二个是进行柔化场景的,第三个是调整颜色的,第四个......
  • L1-002&L1-003
    L1-002本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N......
  • Unity3D学习记录01:URP渲染管线以及3D游戏场景设置
    以下内容所使用的版本均为Unity2022.3先在Window->PackageManager->UnityRegistry里面搜索添加UniversalRP Unity中,创建渲染管线的方式为Asset文件夹下右键Create->Readering->URPAsset(withUniversalAsset)会创建以下两个Pipeline: 接着在图中的设置里添加这两个渲......