什么是3D渲染,3D渲染在CG项目中为何如此重要?

随着科技的发展,现如今任何人都可以使用免费软件在个人计算机上创作 3D 图像,当然也有人对于专业 3D 艺术的创作方式及其相关工作流程存在一些误解,认为创建一个模型后,在上面放上材料和纹理,就可以立马得到一个漂亮的图像。实际上与建模相比,图像的渲染又是一个不同的过程,到底什么是 3D渲染,3D渲染在创建CG项目时为什么如此重要呢?

一、将3D变为可视化的2D

每个3D对象只是存储在计算机内存中的顶点坐标数组。这些坐标可以是绝对的或相对的,后者意味着只有枢轴点具有完整坐标,并且每个顶点由它在每个轴(X、Y 或 Z)上与枢轴的距离来定义。解释这组数字并将其转换为人眼可以看到的图像的过程就称为 3D 渲染,基本上,当计算机从我们的眼睛接收信息时,它就在执行与我们的大脑相同的任务了。

渲染的主要任务是确定观看者可以看到什么以及它的外观,在正交视图中,任务会更容易一些,因为对象不会随着距离改变大小和形状。而在透视图中则需要额外的计算才能确定屏幕上的对象有多大。某些对象可能显示为点或者是变得不可见,因为它们位于为防止无限计算而设置的远端限制之后。

(在以上正交视图中,无论距离相机多远,对象的大小都保持不变,而从透视图中来看的话,圆锥体和球体相对于长方体要显得小得多.)

在这之后渲染算法会逐个像素地计算它的颜色,这些又取决于任务中存在的对象、包括它的材质、光源和阴影等。根据所需的真实感、现有的硬件配备和复杂的算法来渲染图像,这个过程说需要的时间可能是几分钟,也可能是几小时甚至几天,3ds Max线框渲染是合适的选择之一。

二、光线追踪和光栅化

目前有两种从3D场景创建2D图像的主要方法:分别是光栅化和光线追踪。

光栅化从计算机生成图形的第一天起就已经存在,计算机将场景中的所有对象分成三角形,计算它们在屏幕上的位置,并覆盖上一个像素网,然后根据材料和透明度决定每个像素的颜色。当您需要清楚地看到场景中的所有内容,并了解前面和后面的内容时,光栅化算法就十分有用。3D 软件中的视口使用光栅化来显示创建的几何体,然而当涉及到光照和阴影时,光栅化一般显示效果类似于“猜测”,这导致我们的结果看起来就不太真实了,所以还有许多额外的算法可以增加真实感;

光线追踪技术指的是创建物理上正确的图像,它模仿的是我们的大脑如何为我们构建图像的过程:光线撞击表面并从表面反射,具体取决于材料,它改变了光线的属性,所以当我们的眼睛捕捉到它时,它会被感知为具有特定的颜色。通常,光线追踪器的方向相反:光线从相机(我们的视点)射向物体,当光线撞击表面时,它会反弹(或者如果表面是透明的则穿过)并产生其他几条光线,这些新光线撞击其他表面并反弹等等,直到到达光源,然后最后一条光线采用此光源的属性并将此信息沿线返回,计算每个反弹点的颜色。

光线追踪是一种递归算法,导致一次完成大量计算,因此每次反弹产生的新光线数量有限,然而随着硬件技术的发展,光线追踪渲染器已经能够越来越好地创建与现实难以区分的视觉效果,所以也被广泛用于电影建筑可视化

(Corona Renderer 是一个光线追踪引擎,在渲染开始时,图像显得非常嘈杂,随着时间的推移,像素的颜色逐渐被计算出来,噪声消失.)

光线追踪和光栅化技术目前都用于计算机图形学,两者之间的选择来自于回答这个问题:你需要多快的结果?

三、实时与生产渲染

光线追踪需要如此强大的处理能力,即使是顶级处理器也无法快速执行。但是电影和 3D 卡通渲染逼真的图像又需要时间,所以这是在渲染农场的服务器集群上批量渲染完成的。这样、我们在单个处理器中需要几个月时间的渲染量,就可以在几小时之内轻松完成。当然,换做是单个图像,渲染速度就很快了(个人计算机仅需几分钟或几小时),具体时间取决于您计算机的 GPU 或 CPU。

而现如今的视频游戏和互动媒体中,没人愿意等待一张图片哪怕是几秒钟的时间,而舒适游戏的最低帧速率为每秒 60 帧,因此,光栅化渲染就成为了主要技术。为了确保游戏运行顺畅并且观感舒服,游戏开发者会尽可能优化模型、纹理和整体场景,大多数灯光和阴影都经过烘焙(预先计算并在渲染过程中使用),所以有些效果是伪造的、没有经过计算的,压缩版本的纹理用于小而远的物体。

总而言之,它可以高速生成逼真的图形,在过去的几年中,开发技术将光线追踪引入了游戏引擎,但仅用于计算光照效果,或许再过十年,所有现代游戏都将使用光线追踪渲染来玩了。

四、GPU 和 CPU 渲染

得益于现代 GPU 的强大性能,实时渲染已然成为可能,然而当没有严格的时间限制时,渲染工作是可以在 CPU 上完成的,传统上繁重的渲染是在 CPU 上完成的,它极大地受益于处理内核和线程的数量。CPU 使用 RAM 加载所有需要的资源,而 RAM 的频率会影响渲染时间,将几个更便宜、功能更弱的 CPU 连接在一起来渲染任务也很容易。

现代 GPU 由于拥有大量的内核和线程, 它们可以更快地完成相同的工作,他们还使用专门的内部 VRAM 来加载资产,这比传统 RAM 快得多。但GPU VRAM 无法扩展也是一个很大的局限性,对于一些资源要求很高的场景它无法处理,那这些场景就需要在 GPU 渲染之前先优化完毕,不过、尽管如此它还是比直接在 CPU 上渲染花费的时间更少,而且后续随着软硬件技术的发展,GPU 将会占据越来越多的市场份额。

(渲染引擎通常被开发为使用 GPU 或 CPU,但是、像 V-Ray 和 Cycles 这样的引擎是可以使用其中任何一个的.)

目前,GPU 比 CPU 成本更高一些,也没有几个渲染引擎支持将多个性能较低的 GPU 连接在一起使用,因为这样的网络无法统一显存(VRAM)。所以 CPU 在渲染农场中连接在一起工作时显得相对协调很多。此外,许多VFX和动画工作室已经将渲染时间纳入其工作流程,一般没有特别紧急的渲染任务要交付的话,使用 CPU 渲染都会更节省一点成本。

如果最后我们的计算机在 CG 渲染过程中碰到了无法超越的阻碍,我们也仍然可以通过选择云渲染来生成大型精美图像和动画。在Renderbus瑞云渲染,我们提供市场上最强大的 CPU 和 GPU 机器,可以轻松处理具有高分辨率图像的大场景或巨量渲染帧数的项目。Renderbus瑞云渲染就是一个只为您的3D渲染项目服务的云渲染平台!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringCloud源码之OpenFeign

OpenFeign 基于 OpenFeign 2.2.6.RELEASE版本进行源码阅读 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId><version>2.2.6.RELEASE</version> </dependen…

【细读Spring Boot源码】监听器合集-持续更新中

前言 监听器汇总 归属监听器名称作用cloudBootstrapApplicationListenercloudLoggingSystemShutdownListenercloudRestartListenercloudLoggingSystemShutdownListenerspringbootEnvironmentPostProcessorApplicationListener用于触发在spring.factories文件中注册的Environm…

市级大数据中心大数据资源平台概要设计方案(ppt可编辑)

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用&#xff0c;如有侵权请联系删除。 大数据管理中心发展背景 为建设卓越全球城市&#xff0c;实现政府治理能力现代化目标&#xff0c;由市大数据中心牵头&#xff0c;在政务公共数据管理和互联网政务服务方面…

numpy的下载、数据类型、属性、数组创建

下载numpy 因为numpy不依赖于任何一个包所以numpy可以直接使用pip命令直接下载 下载命令&#xff1a; pip install numpy # 默认从https://pypi.org/simple 下载 pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ # 从清华大学资源站点下载 pip install nump…

UG NX二次开发(C#)-显示-更改对象颜色

文章目录 1、前言2、UG NX中的更换对象颜色的功能3、采用UG NX二次开发实现颜色修改3.1 采用直接赋值对象颜色不能直接更改对象颜色3.2 采用NewDisplayModification的方法如下:1、前言 当一个三维模型展现在我们面前时,总会有颜色赋予三维模型的对象上,比如红色、蓝色、银灰…

if条件语句

if条件语句 条件测试 test 测试表达式是否成立&#xff0c;若成立返回0&#xff0c;否则返回其他数值 格式1 &#xff1a;test 条件表达式&#xff1b;格式2 &#xff1a;[ 条件表达式 ] echo $?参数作用-d测试是否为目录 (Directory)-e测试目录或文件是否存在(Exist)-f测…

直线导轨水平仪零位调整方法

对于直线导轨的使用&#xff0c;相信很多人都知道&#xff0c;这主要是因为直线导轨的使用范围非常广泛&#xff0c;小到抽屉&#xff0c;大到机械设备&#xff0c;我们都能看到他的身影&#xff0c;接触得多自然就熟悉了。 事实上&#xff0c;大家对直线导轨的了解可能就仅限于…

Cortex-A7中断详解(一)

STM32中断系统回顾 中断向量表NVIC&#xff08;内嵌向量中断控制器&#xff09;中断使能中断服务函数 中断向量表 中断向量表是一个表&#xff0c;表里面存放的是中断向量。 中断服务程序的入口地址或存放中断服务程序的首地址成为中断向量&#xff0c;因此中断向量表是一系…

【Linux入门】linux指令(1)

【Linux入门】linux指令&#xff08;1&#xff09; 目录 【Linux入门】linux指令&#xff08;1&#xff09;操作系统登录服务器Linux下的基本指令ls指令pwd指令Linux路径分割符 /cd指令touch指令mkdir指令&#xff08;重要&#xff09;rmdir指令&&rm指令&#xff08;重…

linux实现网络程序

1️⃣ 在linux下&#xff0c;通过套接字实现服务器和客户端的通信。 2️⃣ 实现单线程、多线程通信。或者实现线程池来通信。 3️⃣ 优化通信&#xff0c;增加守护进程。 有情提醒&#xff0c;类里面默认的函数是内联。内联函数在调用的地方展开&#xff0c;没有函数地址&…

Mac使用命令行工具解压和压缩rar文件

目前在Mac电脑里支持解压缩的格式主要有&#xff1a;zip、gz等&#xff0c;但是还不支持rar格式的文件&#xff0c;接下来带着大家学习一下如何解压缩rar格式文件。 1.下载rar工具 打开&#xff1a;https://www.rarlab.com/download.htm 根据自己电脑的芯片要求选择自己的安装…

【计算机基本原理-数据结构】数据结构中树的详解

【计算机基本原理-数据结构】数据结构中树的详解 1&#xff09;总览2&#xff09;树的相关概念3&#xff09;二叉树、满二叉树、完全二叉树4&#xff09;二叉查找树 - BST5&#xff09;平衡二叉树 - AVL6&#xff09;红黑树7&#xff09;哈弗曼树8&#xff09;B 树9&#xff09…

TCP流量控制与拥塞控制

什么是流量控制 一条TCP连接的每一侧主机都为该连接设置了接收缓存。当该TCP连接接收到正确的、有序的报文段&#xff0c;就会将数据放入接收缓存。相关联的应用会从缓存中读取数据。 如果发送者发送数据过快、过多&#xff0c;而接收方的应用程序从缓冲区读取的速度较慢&…

机器学习实战教程(十):逻辑回归

概述 逻辑回归&#xff08;Logistic Regression&#xff09;是一种用于解决二分类或多分类问题的统计学习方法。它以自变量线性组合的形式进行建模&#xff0c;并使用Sigmoid函数将结果映射到[0, 1]的值域内&#xff0c;表示样本属于某个类别的概率。 Logistic Regression是最…

Stable Diffusion-生式AI的新范式

! 扩散模型&#xff08;Stable Diffusion)现在是生成图像的首选模型。由于扩散模型允许我们以提示( prompts)为条件生成图像&#xff0c;我们可以生成我们所选择的图像。在这些文本条件的扩散模型中&#xff0c;稳定扩散模型由于其开源性而最为著名。 在这篇文章中&#xff0…

STM32平衡小车 TB6612电机驱动学习

TB6612FNG简介 单片机引脚的电流一般只有几十个毫安&#xff0c;无法驱动电机&#xff0c;因此一般是通过单片机控制电机驱动芯片进而控制电机。TB6612是比较常用的电机驱动芯片之一。 TB6612FNG可以同时控制两个电机&#xff0c;工作电流1.2A&#xff0c;最大电流3.2A。 VM电…

力劲塑机:用CRM“塑造”数字化能力

你知道吗&#xff1f;从手机到电脑&#xff0c;从暖气到扶梯&#xff0c;从家用电器到汽车、摩托车&#xff0c;从眼镜、手表到拉链、纽扣&#xff0c;这些物品的生产过程都离不开压铸和注塑工艺。如果说压铸和注塑这个几百亿的产业带动了几万亿的市场&#xff0c;一点也不夸张…

fc坦克大战游戏完美复刻

文章目录 一、 介绍二、 制作基本物体三、 控制玩家坦克移动、转向四、 子弹脚本、爆炸脚本五、 敌人AI寻路算法六、 坦克生成点脚本七、 用链表实例化地图八、 玩家游戏控制器脚本九、 添加音效十、 资源包 一、 介绍 儿时经典游戏《坦克大战》完整复刻 发射子弹、生成敌人、…

巧用千寻位置GNSS软件|一文教会横断面测量

测横断面主要用于线路工程和水利工程的前期设计中&#xff0c;在线路平曲线设计好之后&#xff0c;千寻位置GNSS软件可用于在中桩处测定垂直于线路中线方向原地貌的地面起伏的数据&#xff0c;本期就为大家介绍具体的操作技巧。 点击【测量】->【测横断面】&#xff0c;选择…

java——最小的K个数

题目链接 牛客在线oj题——最小的K个数 题目描述 给定一个长度为 n 的可能有重复值的数组&#xff0c;找出其中不去重的最小的 k 个数。例如数组元素是4,5,1,6,2,7,3,8这8个数字&#xff0c;则最小的4个数字是1,2,3,4(任意顺序皆可)。 数据范围&#xff1a;0≤k,n≤10000&…