3D软件坐标系速查【左手/右手】

news2024/11/18 15:41:19

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

NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出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 艺术家、游戏开发人员或游戏设计师,了解不同轴系统的逻辑也很重要。


原文链接:3D软件坐标系速查 - BimAnt

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

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

相关文章

西电期末考点总结

一.“打擂台” 介绍 打擂台用于找到一个数组中的最值问题,先设置一个虚拟擂主,并保证他是“最弱的”,然后遍历数组,找到“更强的”数据,就交换擂主,“打”到最后的“擂主”就是最值数据 相关题目 1004.…

【服务器数据恢复】Raid5热备盘同步失败导致lvm结构损坏的数据恢复案例

服务器数据恢复环境: 两组由4块磁盘组建的raid5磁盘阵列,两组raid5阵列划分为lun并组成了lvm结构,ext3文件系统。 服务器故障: 一组raid5阵列中的一块硬盘离线,热备盘自动上线并开始同步数据。在热备盘完成同步之前&am…

小H靶场笔记:DC-7

DC-7 January 8, 2024 4:11 PM Tags:Drupal 8;Drush Owner:只惠摸鱼 信息收集 使用arp-scan和nmap扫描C段存活主机,探测到靶机ip:192.168.199.137,且开放80、22端口 探测22、80开放端口的服务、版本、操…

统计数据集句子长度信息

在文本分类任务做科研写论文的时候,我们有时候需要对对数据集的大小进行分析,如果你想统计CSV文件中某一列英语句子的单词个数(不包含标题),可以使用Python的split()函数将句子拆分为单词,并计算单词的个数…

【EasyExcel】导出excel冻结表头和冻结指定列并支持筛选器

需求背景: 导出excel的同时冻结表头和前两列基础信息,方便导出后用户查看信息。 一、技术选型: easyExcel的自定义写策略处理:SheetWriteHandler 二、方案设计:(基于实现 SheetWriteHandler 接口&#xf…

歌词滚动显示

歌词滚动显示 环境准备htmldata.js歌词css 解析歌词为对象数组查找指定时间点的歌词创建歌词元素li计算偏移量监听播放时间执行偏移计算 模仿音乐软件实现歌词随播放时间滚动显示 环境准备 html <!DOCTYPE html> <html lang"en"> <head><meta…

Redis基本原理和基础知识

目录 一、基本原理 &#xff08;一&#xff09;非关系型数据库 &#xff08;二&#xff09;关系型数据库与非关系型数据库的区别 &#xff08;三&#xff09;Redis简介 1.什么是Redis 2.数据存储结构 3.默认端口号 4.数据类型 &#xff08;1&#xff09;五大基础类型 …

test fuzz-02-模糊测试 JQF + Zest Semantic Fuzzing for Java

拓展阅读 开源 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) 开源 Junit performance rely on junit5 and jdk8.(java 性能测试框架。性能测试。压测。测试报告生成。) test fuzz-01-模糊测试&#xff08;Fuzz Testing&#xff09; test fuzz-…

软件概要设计(word)原件

1引言 1.1编写目的 1.2项目背景 1.3参考资料 2系统总体设计 2.1整体架构 2.2整体功能架构 2.3整体技术架构 2.4运行环境设计 2.5设计目标 3系统功能模块设计 3.1个人办公 4性能设计 4.1响应时间 4.2并发用户数 5接口设计 5.1接口设计原则 5.2接口实现方式 6运行设计 6.1运行模块…

Linux ls命令

目录 一. 配置项1.1 ls -l1.2 ls -a1.3 ls -lrt1.4 ls -ld .?* 二. 案例2.1 查看指定文件夹下文件的数量2.2 查看多个文件夹下文件信息 一. 配置项 1.1 ls -l ⏹ ls 列出当前文件夹下所有文件名称(不包含隐藏文件) jmw_num_00 jmw_num_02 jmw_num_04 jmw_num_06 jmw_n…

跨平台的文件传输协议@windows端服务器的配置@smb协议共享方案@ftp服务器设置

文章目录 abstractrefs ftp server下面是核心步骤FAQ smb server设置方法 共享文件夹的访问控制补充匿名访问问题协议相关信息参考android客户端推荐FAQ不同用户文件无法访问 比较和总结传输速率问题 abstract 文件传输协议是很常用的协议特别是跨平台的协议,往往更加受欢迎,应…

VS2022 | 调整适配虚幻5的设置

VS2022 | 调整适配虚幻5的设置

小米4A千兆版路由器刷入OpenWRT教程结合内网穿透远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…

数组中元素的插入和查找算法探究

数组的查找 线性查找 概念 线性查找也叫顺序查找&#xff0c;这是最基本的一种查找方法&#xff0c;从给定的值中进行搜索&#xff0c;从一端开始逐一检查每个元素&#xff0c;直到找到所需元素的过程。 元素序列的排列可以有序&#xff0c;也可以无序。 代码实现 public cl…

vulhub中的Apache HTTPD 换行解析漏洞(CVE-2017-15715)详解

Apache HTTPD 换行解析漏洞&#xff08;CVE-2017-15715&#xff09; 1.cd到CVE-2017-15715 cd vulhub/httpd/CVE-2017-15715 2.运行docker-compose build docker-compose build 3.运行docker-compose up -d 4.查看docker-compose ps 5.访问 出现这个表示安装成功 6.漏洞复现…

16-20.Python语言进阶

Python语言进阶 重要知识点 生成式&#xff08;推导式&#xff09;的用法 prices {AAPL: 191.88,GOOG: 1186.96,IBM: 149.24,ORCL: 48.44,ACN: 166.89,FB: 208.09,SYMC: 21.29 } # 用股票价格大于100元的股票构造一个新的字典 prices2 {key: value for key, value in prices…

Github 2024-01-09Python开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-01-09统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目10Jupyter Notebook项目1 Payloads All The Things - 有用的Web应用程序安全负载和绕过列表 创建…

Unity 编辑器篇|(二)GenericMenu自定义弹出式菜单

目录 1. 前言2. Scene视图添加自定义菜单3. Hierarchy视图添加自定义菜单4. Project视图添加自定义菜单5. Game视图添加自定义菜单 1. 前言 GenericMenu 是 Unity 中的一个强大的类&#xff0c;用于创建和管理自定义上下文菜单&#xff08;也称为弹出菜单&#xff09;。可以使…

Django配置日志系统的最佳实践

概要 日志是跟踪应用行为、监控错误、性能分析和安全审计的重要工具。在Django框架中&#xff0c;合理配置日志系统可以帮助开发者有效管理项目运行过程中的关键信息。本文将详细介绍Django日志系统的最佳实践。 日志系统概述 Django使用Python的 logging 模块来实现日志系统…

苹果快捷指令在哪?详细使用教程送给大家!

快捷指令是苹果公司推出的一个实用功能&#xff0c;然而&#xff0c;可能还有很多新手用户不知道苹果快捷指令在哪。其实&#xff0c;快捷指令中心是iOS系统自带的应用&#xff0c;它一般就位于手机的主屏幕中。今天&#xff0c;小编将针对此问题来给大家分享一下有关苹果快捷指…