3d渲染

学习影视动画都会用到哪些软件!

*爱你&永不变心* 提交于 2020-01-08 21:11:52
学习影视动画都会用到哪些软件! 对于很多刚刚接触影视动画专业或动漫制作专业的同学来说,在刚开始学习的时候都会遇到一个误区,甚至是迷茫。 大一 一般都是练习速写,素描,绘画之类的课程,大二会接触一些软件,比如PS、AE、3DMAX、MAYA、PR、C4D等相关软件。 学的软件有很多,但是基本上都是了解个基础,甚至有些和学习动画都没有太多关联,而且不能够深入系统的学习。 我遇到过很多同学都有上课老师讲的东西很多很快,课后一脸蒙圈的学员,为了赶作业绞尽脑汁,煞费苦心。 那作为一名动画专业的学员,学习的核心是什么,以及主要应该学习哪些软件才是重点。今天给大家详细的说下并列举出来,下面是我们的渲染大师班会用到的软件,我挨个给大家说。 1.MAYA 动画专业最核心的一款软件,也是你学习动画专业必须要学习的,也是重点要学习的一款软件,制作动画片目前世界上首选的软件就是MAYA软件,里面包含了模型、渲染、动画、特效、4个模块。 每一个模块在项目里面都是独立的一个工作岗位,都具有重要的岗位价值,学习模型你可以以后去公司做模型师,学习渲染你以后可以去公司做材质师和灯光师,或者是渲染师。 动画师是单独的一个工作岗位,以后去公司里面可以做动画师,也可以做绑定师,还有一个是特效师,相对来说要求会比较高。 2.Arnold 是目前影视动画公司主流的渲染器,中文翻译过来叫做阿诺德渲染器

Voxel Vs LOD

眉间皱痕 提交于 2019-12-27 10:16:51
中文名称:体素,即顾名思义是体积的像素。用来在 三维空间 中表示一个显示基本点的单位。类似于二维平面下的 pixel ( 像素 )。 voxel是三维空间中定义一个点的图象信息的单位。在平面中定义一个点要两个坐标X和Y就够了,而在三维世界中还要有一个 坐标 。光有 位置 还不行,还要有 颜色 等信息,这就是voxel的含义。 A voxel is a unit of graphic information that defines a point in three-dimensional space. Since a pixel (picture element) defines a point in two dimensional space with its x and y coordinates , a third z coordinate is needed. In 3-D space, each of the coordinates is defined in terms of its position, color, and density. Think of a cube where any point on an outer side is expressed with an x , y coordinate and the third, z coordinate

笨办法读RTR4(翻译) Real-Time Rendering 4th : Chapter 3 - The Graphics Processing Unit(下)

≡放荡痞女 提交于 2019-12-26 01:17:59
赶在 2019 结束之前把第三章结束,提前祝大家新年快乐! 实时渲染(第四版)Real-Time Rendering (Fourth Edition) 第3章 图形处理单元(GPU) Chapter 3 The Graphics Processing Unit 3.7 几何着色器 The Geometry Shader 几何着色器可以将图元转换为其他图元,而这在细分阶段是无法完成的。 例如,可以通过让每个三角形创建线边缘,将三角形网格转换为线框视图。 或者,可以将这些线替换为面向观察者的四边形,从而使线框渲染的边缘更粗 [1492] 。几何着色器是在2006年底随DirectX 10发行版添加到硬件加速的图形管道中的。它位于管道中的细分着色器之后,并且可以选择使用。 虽然是Shader Model 4.0的必需部分,但在较早的着色器模型中未使用它。 OpenGL 3.2和OpenGL ES 3.2也支持这种类型的着色器。 几何着色器的输入是单个对象及其关联的顶点。 对象通常由带状( strip ),线段( line segment )或点( point )构成的三角形所组成。 扩展的图元可以由几何着色器定义和处理。 特别是,可以传入三角形外部的三个附加顶点,并且可以使用折线上的两个相邻顶点。 参见图3.12。 使用DirectX 11和Shader Model 5.0

新的引擎ZeusEngine

拜拜、爱过 提交于 2019-12-24 17:45:52
工作这么多年,也开发过几个引擎,去年还独立开发一个基于iPhone平台的3D FPS游戏引擎(包括引擎和所有编辑器)。最近在研究Unreal 3和Crysis的引擎,有了些新的想法,于是想全新开发一个新的引擎 ZeusEngine。 在写这片博客的时候这个引擎已经开发一段时间。 下面列出这个引擎将要支持的特性。 首先这个引擎是一个同时支持PC和iPhone平台的引擎,使用统一架构(事实上没有写任何区分平台的代码)。根据资源及其配置情况便可支持在PC上的高级效果,也可以支持iPhone上的简单效果,一切都是外部资源决定。 引擎特性如下: 1. 材质系统 简单来说材质中分为Solution,Solution包含PassGroup, PassGroup包含若干Pass,Pass包含管线状态,材质信息, Shader等。这些属性通过xml文件进行组织。在模型导出时导出基本材质数据,然后通过模型察看器进行进一步的设置。 2. 渲染流程控制系统 渲染流程分为Solution(与材质的Solution相对于),Solution中包含若干Stage,在Stage可以完成渲染场景,渲染UI, 渲染屏幕(后期效果),同时Stage中还可以指定该Stage使用的材质PassGroup,和渲染ID,而且还可指定Shader,这样 就可以实现在不同的Stage中使用不同的材质,从而达到灵活配置

三维校园电子地图设计

ぐ巨炮叔叔 提交于 2019-12-17 10:50:28
三维校园电子地图是我在大学的时候为学校设计三维校园导航系统,采用 C# 语言和 Managed DirectX 2.0 技术开发的三维地图引擎。可是就目前来看,微软并不打算进一步对 Managed DirectX 发展,取而代之的则是 XNA (微软力推的游戏开发平台,多用于开发 XBOX 的游戏),同时也在进一步的拓展 DirectX ( C++ )的功能。本着 C# 语言的强大性和简易性,我相信在不久的将来 XNA 开发队伍会越来越壮大。目前我是踏着 C++ 和 C# 双向路线来学习和研究 DirectX 的相关技术。 在学校开发三维校园电子地图引擎的时候我把大量的时间花在了校园地理数据采集、模型设计和地图引擎框架设计方面,所以在三维校园电子地图引擎中并没有很深入的运用到 DirectX 三维图形编程技术,在 Terrain 方面也做得不够好,但是它重点在于功能和运用方面的开发,以达到一个智能化三维电子地图的平台。从实现的效果上来看我还是非常满意的,而且当时作品还获得了毕业设计全校第一名,稍微自豪一下 :)。我打算用 DirectX 技术把三维电子地图引擎用 C++ 重写一遍,在其中加入地形、平截头体选择、场景管理、智能摄像机、碰撞检测、骨骼动画、模型层次细节优化等技术,使得地图引擎更加逼真完美。 以下是三维电子地图引擎设计的介绍,主要把整个三维电子地图引擎的创建过程描述了一遍

静态渲染之Ambient Occlusion

二次信任 提交于 2019-12-06 23:20:28
Ambient Occlusion Wikipedia 问题描述: 对于3D游戏,AO作为全局光照的一部分已经成为很多3D引擎的标配,不管是静态还是SSAO。本文描述为在游戏开发后期为了提高整体效果而弥补的静态渲染的AO。 制作流程: 按文档划分UV(正常应该按场景的区域还划分?) 渲染生成AO贴图 运行期使用AO贴图 一些要点: 分UV,合并单个文档的Mesh为一个Mesh,然后转换为DX的标准Mesh,然后利用DX自带的UVAtlas来进行UV划分(UVAtlas分的UV并不是很好),UVAtlas中有很多参数需要注意.分好UV的Mesh,根据文档把第二套UV数据插入进去,保存Mesh以及文档. 渲染生成AO部分参考 这篇文章 ,对于非封闭的模型,美术又没有补面的,要做一些特殊处理. 运行期AO贴图直接影响光照运算或者模拟乘上去(GameBryo的话直接放DarkMap通道来用了) 大专栏 静态渲染之Ambient Occlusion raft-ambient-occlusion">Minecraft Ambient Occlusion ref: ambient-occlusion-for-minecraft-like-worlds Minecraft-Overviewer-lighting http://www.sea-of-memes.com/LetsCode35

unity3d Time.deltaTime个人理解

此生再无相见时 提交于 2019-12-04 06:17:25
官方的解释是:静态只读属性,时间增量,渲染上一帧所花费的时间 看下面的代码 /// <summary> /// 每帧刷新 /// </summary> void Update() { transform.Translate(0, 0, Time.deltaTime * 10); //物体沿着自身Z轴方向,每秒移动物体10米运动 } 这个方法所用的公式很简单:距离=时间*速度 我读官方解释的时候,有点迷惑,既然是渲染上一帧的时间,说明帧已经渲染完毕,那么计算出来的坐标,已经不能用在上一帧里面。这个过程是怎样的呢?从头设想:一开始,渲染的是初始帧,假设用的时间为t1,那么现实世界中物体移动的距离是t1*10,但是,我们只是看到了物体停留在初始位置。接着渲染第二帧,将刚才计算出来的坐标用于第二帧的渲染。假设渲染用时t2,那么现实世界中物体移动的距离是t2*10。但是,我们只是看到了物体经过时间t1后所在位置,而当前时间已经过了t1+t2。也就是说,我们看到的画面是滞后的 当然,以上纯属个人猜测,本人初学unity 3d,有不对的地方还待指正 来源: https://www.cnblogs.com/drew/p/11837089.html

Unreal Engine 4 中的 UI 优化技巧

大兔子大兔子 提交于 2019-12-03 14:42:41
转自: https://mp.weixin.qq.com/s/bybEHM9tF-jBPxxqXfrPOQ## Unreal Open Day 2017 活动上 Epic Games 开发者支持工程师郭春飚先生为到场的开发者介绍了在 Unreal Engine 4 中 UI 的优化技巧,以下是演讲实录。 1. UI的基本概念 1.1 名词解释 User Widget: 对应一个用户界面。 Widget Tree: 每一个 User Widget 都是存储成树状结构。 Panel Widget: 不会渲染出来,用于对 Child Widget 进行布局,如 Canva Panel, Grid Panel, Horizontal Box 等。 Common Widget: 用于渲染,会生成到最后的 Draw Elements 中,如 Button, Image, Text 等。 1.2 渲染流程 基本渲染流程示意图: 在游戏线程 ( Game Thread ),Slate Tick 每一帧会遍历两次 Widget Tree。 Prepass: 从下到上遍历树,计算每一个Widget的理想尺寸 (Desired Size)。 OnPaint: 从上到下遍历树,计算渲染所需的 Draw Elements 。这个过程中,会根据 Common Widget 的类型和参数生成相应的 Vertex

深入浅出计算机组成原理:GPU(上)-为什么玩游戏需要使用GPU?(第30讲)

烂漫一生 提交于 2019-11-28 15:52:43
一、引子 讲完了CPU,我带你一起来看一看计算机里的另外一个处理器,也就是被称之为GPU的图形处理器。过去几年里,因为深度学习的大发展,GPU一下子火起来了, 似乎GPU成了一个专为深度学习而设计的处理器。那GPU的架构究竟是怎么回事儿呢?它最早是用来做什么而被设计出来的呢? 想要理解GPU的设计,我们就要从GPU的老本行图形处理说起。因为图形处理才是GPU设计用来做的事情。只有了解了图形处理的流程,我们才能搞明白, 为什么GPU要设计成现在这样;为什么在深度学习上,GPU比起CPU有那么大的优势。 二、GPU的历史进程 GPU是随着我们开始在计算机里面需要渲染三维图形的出现,而发展起来的设备。图形渲染和设备的先驱,第一个要算是SGI(Silicon Graphics Inc.)这家公司。 SGI的名字翻译成中文就是“硅谷图形公司”。这家公司从80年代起就开发了很多基于Unix操作系统的工作站。它的创始人Jim Clark是斯坦福的教授,也是图形学的专家。 后来,他也是网景公司(Netscape)的创始人之一。而Netscape,就是那个曾经和IE大战300回合的浏览器公司,虽然最终败在微软的Windows免费捆绑IE的策略下, 但是也留下了Firefox这个完全由开源基金会管理的浏览器。不过这个都是后话了。 到了90年代中期,随着个人电脑的性能越来越好,PC游戏玩家们开始有了

3D渲染管线的概述

只愿长相守 提交于 2019-11-26 17:45:18
渲染管线简介:是用来创建一个几何描述3D世界的2D图像,和一个确定这个3D世界中哪一部分将被透视投影到屏幕上的虚拟摄像机。 作用:将3D场景用几何学表现出来以及用它来产生2D图像。 简化的渲染管线流程: 参考《3D游戏编程基础(DirectX9.0)》 详细图像管线流程: 伪代码描述: // 首先,设置观察场景的方式 setupTheCamera(); // 清楚z-缓冲 clearZBuffer(); // 设置环境光源和雾化 setGlobalLightingAndFog(); // 得到可见物体列表 potentiallyVisibleObjectList = highLevelVisibilityDetermination(scene); // 渲染它们 for (all objects in potentiallyVisibleObjectList) { // 使用包围体方法执行低级别VSD检测 if (!object.isBoundingVolumeVisible()) continue; // 提取或者渐进式生成几何体 triMesh = object.getGeometry(); // 裁剪和渲染面 for (each triangle in the geometry) { // 变换顶点到裁剪空间,执行顶点级别光照 clipSpaceTriangle =