【3ds max笔记】理解三维场景的浏览方式与操作方法

2024-03-24 06:12

本文主要是介绍【3ds max笔记】理解三维场景的浏览方式与操作方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 前言

初学3ds max,很容易会被它的浏览方式搞晕,或者想移动物体,切换观察角度,而不知道怎么操作。其实只要梳理一下,就会变得简单。

2. 浏览方式梳理

通过实际操作3ds max软件,可以发现,对三维场景的浏览方式可以分为两种:

  1. 以某个轴为基准,同步移动某个,或者某几个模型,多角度观察某个或者某几个模型,摄像头的观察位置和角度不变。
  2. 世界内的物体不变,摄像头以某个中心移动浏览,或者变换观察角度。

第一种模式下,世界被分成了三组:

  1. 被移动的一个或多个物体
  2. 没有被移动的一个或多个物体
  3. 摄像头

在第一种模式下:

  • 被移动的物体绝对位置变了;
  • 被移动物体和其他物体、和摄像头的相对位置也变了。

第二组模式下,世界被分成了两组:

  1. 所有物体
  2. 摄像头

在第二种模式下:

  • 世界中所有的物体的绝对位置,以及它们之间的相对位置都没变;
  • 只有摄像头的位置或者角度变了。

这样看来二者的区别很明显:

第一种模式下:物体之间会产生相对位移,第二种模式下物体之间不会产生相对位移。

3. 浏览操作方法

理解了浏览方式,我们还要理解3ds max软件的操作方法。

电脑屏幕是二维的,我们想要操作三维场景,应该制定一个操作标准或者原则,将二维的操作映射到三维场景下。那么3ds max的这套规则是什么呢?

第一种浏览方式,是以屏幕上显示的坐标轴为中心进行的,把鼠标放到对应的坐标轴上拉动,物体就会以坐标轴为基准进行变换,通常的变换操作有三种,即:移动,旋转,放大缩小。

第二种浏览方式,就是改变默认摄像机的位置和观察角度。这种方式下,分为三种浏览操作,即 平移,旋转,拉远拉近(也就是放大缩小)。

对于平移,用鼠标中键按下拉动,原理上,先将屏幕上的的按下点,对应到三维场景下网格面上的点。将此点从屏幕的一个点,拉动到屏幕的另外一个点,整个三维场景跟随此点移动。

对于旋转,用 Alt + 鼠标中键进行操作,可以假想一下,在鼠标按下的地方有一个地球仪,世界随着地球仪的运动,做相同的运动。

对于拉远拉近,用滚动鼠标中键(也就是滚轮)进行操作。放大缩小是以鼠标所在的屏幕位置与三维场景的网格面交点为中心进行的。

语言上有点绕,大家边操作软件边理解。

4. 绘制操作方法

通过浏览的操作方法,我们应该能发现,对三维场景的操作,要么是操作坐标轴,要么是将屏幕上的点,映射到三维网格面,进行操作。

绘制物体或者灯光,采用的是将屏幕上的点,映射到三维网格面来操作的。所以在刚开始绘制灯光的时候,可能很多人会觉得很奇怪,怎么绘制都是歪的。这是因为初始视角下,网格面是斜的。我们需要切换到其他不倾斜的网格视图,比如前视图,上视图,后视图,进行操作,这样操作,才能达到所见即所得的效果。

5. 结语

玩这个软件,容易被各种按钮,菜单搞晕。我们学习的时候必须要按模块去学习,其中浏览与操作是基本功,需要梳理明白,不然会学得一头雾水。

这篇关于【3ds max笔记】理解三维场景的浏览方式与操作方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840681

相关文章

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

C++中零拷贝的多种实现方式

《C++中零拷贝的多种实现方式》本文主要介绍了C++中零拷贝的实现示例,旨在在减少数据在内存中的不必要复制,从而提高程序性能、降低内存使用并减少CPU消耗,零拷贝技术通过多种方式实现,下面就来了解一下... 目录一、C++中零拷贝技术的核心概念二、std::string_view 简介三、std::stri

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

Mybatis的分页实现方式

《Mybatis的分页实现方式》MyBatis的分页实现方式主要有以下几种,每种方式适用于不同的场景,且在性能、灵活性和代码侵入性上有所差异,对Mybatis的分页实现方式感兴趣的朋友一起看看吧... 目录​1. 原生 SQL 分页(物理分页)​​2. RowBounds 分页(逻辑分页)​​3. Page

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Linux链表操作方式

《Linux链表操作方式》:本文主要介绍Linux链表操作方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、链表基础概念与内核链表优势二、内核链表结构与宏解析三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势六、典型应用场景七、调试技巧与

Linux实现线程同步的多种方式汇总

《Linux实现线程同步的多种方式汇总》本文详细介绍了Linux下线程同步的多种方法,包括互斥锁、自旋锁、信号量以及它们的使用示例,通过这些同步机制,可以解决线程安全问题,防止资源竞争导致的错误,示例... 目录什么是线程同步?一、互斥锁(单人洗手间规则)适用场景:特点:二、条件变量(咖啡厅取餐系统)工作流

Golang 日志处理和正则处理的操作方法

《Golang日志处理和正则处理的操作方法》:本文主要介绍Golang日志处理和正则处理的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录1、logx日志处理1.1、logx简介1.2、日志初始化与配置1.3、常用方法1.4、配合defer

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解