3D软件坐标系速查

本文介绍不同3D软件的世界坐标系之间的差异及其工作原理。

基本上,游戏引擎和3D软件包最重要的问题是根据软件的坐标轴系统创建资产,正确缩放它们并根据要完成的工作设置枢轴系统。

坐标系正确性的定义可能会根据模型导入的游戏引擎或 3D 软件而变化。 每个程序都有不同的坐标轴系统,导出与游戏引擎或其他 3D 软件包兼容的模型至关重要。 在不了解软件坐标系的情况下进行导出可能会导致奇怪的结果。

特别是如果在开发游戏时作为一个团队工作,你应该更加注意这个问题并正确导出。 如果游戏开发人员收到你提供的 3D 模型,该模型的坐标系与当前程序不同,则可能会浪费时间来理解该问题。 这是你必须要注意的情况。

既然我们已经充分讨论了该主题的重要性,那么让我们从了解坐标系开始本文。

1、什么是坐标系?

我们可以将坐标系定义为一种使用一个或多个数字或坐标来确定点或其他几何元素的位置的系统。 游戏引擎中坐标系的任务是定义每个对象的位置及其面向的方向。 这些数据可以帮助你计算物体之间的距离、旋转、速度和各种其他有用信息。

在本文中,我们将基于笛卡尔坐标系。 Unity默认使用笛卡尔坐标系。 但是可以使用脚本更改。

众所周知,Unity 场景内的空间由 X、Y 和 Z 轴决定。 这些代表左/右、上/下和前/后方向。 基本上,通过更改Unity中的坐标值,我们指定对象应放置在坐标系中的位置。

Unity坐标轴系统

由于坐标系可以是右手坐标系或左手坐标系,它们也可以根据代表深度变化的轴而不同。 首先让我们了解右手坐标系和左手坐标系之间的区别。

2、右手坐标系 vs. 左手坐标系

通常,3D 图形软件使用两种类型的笛卡尔坐标系:右手坐标系和左手坐标系。 这可能会改变应用程序的首选项,而 3ds Max 使用右手坐标系,虚幻引擎使用左手坐标系。 然而我们可以说大多数 3D 建模应用程序都使用右手坐标。

简单的右手坐标系使用右手法则来确定不同轴的方向,而左手坐标系则使用左手法则。 不同的轴可能代表“向上”方向,但我们稍后会提到。 这里的基本思想是关于旋转方向和地板轴方向(我在这里指的是x和z,它们在不同情况下可能会改变)。 在右手系统中旋转方向为正。 在使用 Y 轴作为上/下方向的右手系统中,Z 轴的 + 方向朝向屏幕外部,而左手系统则相反。

Y-Up 方案中右手和左手坐标系的差异

3、3D 软件中 Y-Up/Down  vs. Z-Up/Down

Blender和3ds Max都使用90年代初期常见的坐标系。 这种约定在建筑中很典型。 你从使用 X/Y 坐标的平面图开始建模,然后向上拉伸(或向下拉伸,如果系统是右手或左手,可能会发生变化)。 这称为 Z-Up(或 -Z-Up)坐标系。

如果在 Blender 中以顶部正交视图查看场景,可以看到 x 轴和 y 轴位于地面

Cinema 4D、Maya、Houdini、图形 API 等 3D 应用程序和大多数游戏引擎都使用不同类型的方法。 屏幕变成一个 2D 平面,它使用 X/Y 坐标来定位平面图像,而 Z 坐标表示场景中的深度。

如果在 Cinema 4D 中以顶部正交视图查看场景,可以看到 z 轴显示向上方向,这意味着它代表前视图的页面深度

最后,你可以在下面找到一些使用不同系统的 3D 应用程序。 即使你是 3D 艺术家、游戏开发人员或游戏设计师,了解不同轴系统的逻辑也很重要。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/571960.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】linux内核pci_set_drvdata函数

一、讲解 该函数pci_set_drvdata是Linux内核中用于PCI设备的一个辅助函数,其主要作用是设置给定PCI设备的驱动程序私有数据。这个函数的参数包括一个指向pci_dev结构体的指针pdev,该结构体描述了一个PCI设备,以及一个void *类型的指针data&a…

鸿蒙OS实例:同步获取应用配置的【versionCode和versionName】

1.同步方式获取 首先需要导包&#xff1a; import bundleManager from ohos.bundle.bundleManager 工具类&#xff1a; public static async getVersionName(): Promise<string> {try {let bundleInfo await bundleManager.getBundleInfoForSelf(bundleManager.Bundle…

面试经典150题【111-120】

文章目录 面试经典150题【111-120】67.二进制求和190.颠倒二进制位191.位1的个数136.只出现一次的数字137.只出现一次的数字II201.数字范围按位与5.最长回文子串97.交错字符串72.编辑距离221.最大正方形 面试经典150题【111-120】 六道位运算&#xff0c;四道二维dp 67.二进制…

Profinet转ModbusTCP:从站设备转换与集成案例

本案例旨在探讨如何将Modbus TCP设备数据成功地接入到西门子PROFINET网络中。为了实 现这一目标&#xff0c;我们将使用西门子S7-1200型PLC以及耐特森Profinet转ModbusTCP网关作为 关键设备。为了模拟Modbus从站&#xff0c;我们将使用电脑安装modbus poll软件。首先需要了解Pr…

VLAN的原理及配置

文章目录 一、VLAN的概述1、VLAN的概念2、VLAN的优势 二、静态VLAN三、静态VLAN的配置1.VLAN的范围2.VLAN基本配置 四、Trunk和access的作用参考 一、VLAN的概述 1、VLAN的概念 VLAN就是将网络从逻辑上划分为若按个小的网络&#xff0c;也就是虚拟局域网。 2、VLAN的优势 使…

逐步学习Go-并发通道chan(channel)

概述 Go的Routines并发模型是基于CSP&#xff0c;如果你看过七周七并发&#xff0c;那么你应该了解。 什么是CSP&#xff1f; "Communicating Sequential Processes"&#xff08;CSP&#xff09;这个词组的含义来自其英文直译以及在计算机科学中的使用环境。 CSP…

今日AI热点:科技前沿新动态

引言&#xff1a; 人工智能领域日新月异&#xff0c;每天都有令人振奋的新进展。从苹果到谷歌&#xff0c;从OpenAI到Meta&#xff0c;各大科技巨头纷纷推出创新产品和技术&#xff0c;不断推动着人工智能的发展。让我们一起来看看今日AI热点&#xff0c;探索这个充满活力和激情…

软件测试技术之登录页面测试用例的设计方法

相信大家都有过写登录测试用例的经验&#xff0c;相较于开发人员编写代码而言&#xff0c;测试人员编写用例同样重要。本文作者总结了一些关于登录用例的经验。 一、功能测试用例设计&#xff1a; 1、正常登录场景 测试用例1&#xff1a;输入正确的用户名和密码&#xff0c;验证…

rmvb怎么转换为mp4?最简单方法!

各种文件格式层出不穷&#xff0c;而RMVB&#xff08;RealMedia Variable Bitrate&#xff09;格式作为一种独特的视频文件格式&#xff0c;其起源可以追溯到上世纪90年代。当时&#xff0c;随着数字视频的崛起&#xff0c;RealNetworks公司迎来了一项重要任务&#xff1a;提供…

20240320-1-梯度下降

梯度下降法面试题 1. 机器学习中为什么需要梯度下降 梯度下降的作用&#xff1a; 梯度下降是迭代法的一种&#xff0c;可以用于求解最小二乘问题。在求解损失函数的最小值时&#xff0c;可以通过梯度下降法来一步步的迭代求解&#xff0c;得到最小化的损失函数和模型参数值。…

如何应对Android面试官->进程通信如何注册与获取服务

前言 大家好&#xff0c;我是老A&#xff1b; 这个章节继续上一章节继续讲解&#xff0c;主要讲解下 java 层服务的注册与获取、线程池&#xff1b;我们基于 AMS 来看下 java 层是如何获取的&#xff1b; SystemServer SystemServer 的启动也是 main 函数&#xff0c;我们进入…

【王道训练营】第3题 判断某个年份是不是闰年,如果是闰年,请输出“yes”,否则请输出“no”

文章目录 引言闰年初始代码代码改进改进1&#xff1a;添加提示信息改进2&#xff1a;代码格式改进3&#xff1a;变量命名 其他实现方式使用if-else语句使用函数使用三元操作符 结论 引言 在公历中&#xff0c;闰年的规则如下&#xff1a;如果某个年份能被4整除但不能被100整除…