3D软件坐标系速查

news2024/11/17 7:20:27

本文介绍不同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.coloradmin.cn/o/1548561.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python Flask-Mail实现邮件发送

一、邮件发送的扩展 关于如何找到flask发送邮件的插件?,上一篇已经分享了如何找到第三方插件,也找到了插件flask-mail的使用文档,那我们就来实战吧 二、根据文档,总结发送邮件的流程 从文档中可以总结出发送邮件的步…

【JavaScript】JavaScript 程序流程控制 ⑦ ( do-while 循环概念 | do-while 循环语法结构 )

文章目录 一、while 循环1、while 循环概念2、do-while 循环语法结构 二、do-while 循环代码示例1、打印 1-5 数字2、打印 1-10 累加和 一、while 循环 1、while 循环概念 JavaScript 中的 do-while 循环 是 while 循环的变体 , 是 一种 后测试 循环 , 该循环的 循环体 至少执行…

Lazada、shopee自养号测评环境搭建需要准备哪些?

在如今电商竞争日益激烈的环境下,卖家们深知流量对店铺转化率的至关重要性。依赖平台内部的流量已不再足够,越来越多的卖家开始探索其他方式来提升销售业绩和品牌知名度。其中,自养号测评成为了一种备受关注的策略,通过搭建独立运…

零基础自学C语言|文件操作

✈为什么使用文件? 如果没有文件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化…

OSPF-区域间路由计算

一、概述 前面学习了我们学习了Router-LSA和Network-LSA,它们都只能在区域内进行泛洪,而且我们之前一直主要是单区域学习。OSPF的核心是骨干区域Area 0,其它都为非骨干区域。但是在大型网络中,单区域OSPF会存在一定的问题&#xf…

Hack The Box-Headless

目录 信息收集 nmap whatweb WEB web信息收集 dirmap 可利用点分析 xss攻击 RCE漏洞 提权 get user get root 信息收集 nmap 端口探测┌──(root㉿ru)-[~/kali/hackthebox] └─# nmap -p- 10.10.11.8 --min-rate 10000 …

使用docker-compose搭建wordpress博客

1、从远程仓库拉取worldpress镜像到本地 2、新建一个项目,然后在新建的项目目录里面新建一个docker-compose.yml模版文件。 3、编写docker-compose.yml文件 4、docker-compose up 运行项目。 5、在浏览器测试 使用docker-compose搭建wordpress博客实验成功。

三相四线智能电表直接接入式接线图

大家好,今天我们要聊的是三相四线智能电表的直接接入式接线方式。别担心,我会用简单易懂的语言来解释这个看似复杂的主题。 首先,我们得知道什么是三相四线电表。在我们的生活中,电力供应通常分为单相和三相。三相电,就…

Python中的数据类型有四类八种如何理解?

在Python中,数据类型大致可以分为四大类,包含了八种基本的数据类型,这些分类有助于理解和使用Python进行编程。这四大类分别是: 数字类型 (Numeric Types): 整型 (int): 表示没有小数部分的整数,可以是正数、负数或零。…

【爬虫基础】第2讲 使用Urllib库创建第一个爬虫程序

Urllib 是 Python 的标准库,它提供了一系列用于处理 URL 的函数和类,包括发送 HTTP 请求、处理 HTTP 响应、解析 URL 等功能。可以使用 urllib 来编写简单的网络爬虫。 request:它是最基本的HTTP请求模块,可以用来模拟发送请求。只…

如何利用OpenCV4.9离散傅里叶变换

返回:OpenCV系列文章目录(持续更新中......) 上一篇:如何利用OpenCV4.9 更改图像的对比度和亮度 下一篇: 目标 我们将寻求以下问题的答案: 什么是傅里叶变换,为什么要使用它?如何在 OpenCV 中做到这一点…

Spring6 (1)

Spring 1、简介:2、第一个程序2、set注入2.1 简单数据类型2.2测试2.3 注入Properties2.4 p命名空间注入2.5 c命名空间注入2.6 util注入2.6 引入外部配置文件 1、简介: 自己的理解:spring其实就是一个容器,也可以说是一个框架&…

腾讯云轻量4核8G12M服务器配置4C8G12M详解

4核8G是云服务器的参数,代表云服务器的硬件配置和网络带宽,4核代表CPU、8G是指内存、12M代表带宽值为12Mbps,腾讯云百科txybk.com以腾讯云轻量应用服务器4核8G12M带宽配置为例,来详细介绍下服务器参数: 4c8g是什么意思…

高阶数据结构 <红黑树>

本文已收录至《数据结构(C/C语言)》专栏! 作者:ARMCSKGT 目录 前言正文红黑树简介红黑树整体结构红黑树节点的定义红黑树主体类设计红黑树的插入函数情况一:变色情况二:变色旋转单旋情况双旋情况 完整插入代码 关于红黑树红黑树检…

鸿蒙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…

树状数组及应用

目录 1.树状数组的概念与基本编码 1.1.引导 1.2.lowbit(x) 1.3.树状数组的编码 2.树状数组的基本应用 2.1.单点修改&#xff0b;区间查询 2.2.区间修改单点查询 例题&#xff1a; 2.3.区间修改&#xff0b;区间查询 例题&#xff1a; 如果数列A是静态不变的&#xff…

并发学习25--多线程 ThreadPoolExecutor

类图&#xff1a;定义了一些重要的接口和实现类 线程池的几种状态&#xff1a; ThreadPoolExecutor构造方法 1.救急线程 线程池中会有核心线程和救急线程&#xff1b;救急线程数最大线程数-核心线程数。而救急线程会在阻塞队列已经占满的情况下&#xff0c;执行下一个即将要被…

RK3568-开启ptp服务

硬件支持 mac或者phy需要支持ptp驱动支持 CONFIG_PTP_1588_CLOCK=y虚拟机端:虚拟机只支持软件时间戳。 安装ptp服务:sudo apt-get install linuxptp 修改ptp服务:sudo vi /lib/systemd/system/ptp4l.service,修改为ens33网口,-S表示使用软件时间戳。forlinx@ubuntu:~$ s…

Redis修改开源协议,6大备胎重见天日

背景&#xff1a;Redis2018年以来修改了多次开源协议&#xff0c;以前是把一些高级功能收费&#xff0c;这次彻底怒了&#xff0c;把核心代码的协议修改为RSALv2和SSPL双重协议&#xff0c;这个修改对普通用户不受影响&#xff0c;是向所有云厂商开炮&#xff0c;以后云厂商将不…

迁移android studio 模拟器位置

android studio 初始位置是安装在c盘&#xff0c;若是要迁移需 1创建一个目标位置如我的F:/avd 2在系统环境变量里面设置新的地址 变量名&#xff1a;ANDROID_SDK_HOME 变量值&#xff1a;F:/avd 3最重要的是文件复制&#xff0c;将C盘里面avd的上层目录.android的目录整体…