【瑞模网】渲染管线入门

【瑞模网】游戏美术基础(一):游戏贴图 DirectX是一种应用程序接口(API),它是由微软公司开发的用途广泛的API,它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计 人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。表面反射光线的能力受环境中各种因素的影响,例如落在对象上的那些非常小颗粒的灰尘,以及接触对象时从手上沾染到对象上的油污, 所有这一切都会影响表面反射光线的能力。注意,在UE4中,材质的默认高光值为0.5。 阅读详情

渲染管线中一些技术名词大部分是英文直译,光看中文很容易被误导。所以我们必须在了解一个技术的具体作用之后,才能了解它到底是什么。这篇博客我主要翻译自Minh Tri Do Dinh的GPUs - Graphics Processing Units一文。也就是一些论坛里推荐给新手阅读的图形处理器架构(GPU_Architecture)与图形管线(Graphics_Pipeline)。在此之上我还添加一些注解,方便大家阅读。

基础名词
  • 3D物体:任何物体,其几何形状都是由三角形组成的。三角形,或者任何图形,都由顶点组成。

  • 顶点:具有空间坐标和其他信息(如颜色和纹理坐标)的点

  • 纹理:映射到3D物体表面的图像,这会造成该物体由某种材料组成的幻觉。物体的顶点存储着纹理坐标(2维向量),用于指定纹理如何映射到任何给定表面。

齐次坐标:3D空间中的点通常需要3个坐标来指定位置。如果继续用3个坐标表示,有时会遇到问题。例如:顶点平移时的操作是加一个向量,顶点旋转时的操作是乘以3x3矩阵)。所以我们通过扩展三维向量来绕开这个问题。我们添加另一个坐标(w坐标,从而得到所谓的齐次坐标[注1]。这样一来,顶点的所有变换都可以通过将其四维坐标与特定的4x4矩阵相乘来进行,使得计算更容易。齐次坐标的另一个用途是明确区分向量和点。

渲染管线

渲染管线(Graphics pipeline/rendering pipeline),其实贴切的翻译应该是渲染流水线。渲染流水线就是将数据从3D场景转换成2D图像,最终在屏幕上显示出来的总过程。它分为几个阶段:应用阶段、几何阶段和光栅阶段。

  应用阶段:主要是CPU与内存打交道,例如碰撞检测,计算好的数据(顶点坐标、法向量、纹理坐标、纹理)就会通过数据总线传给图形硬件 。

几何阶段(Geometry Stage)

这个阶段也被称为“变换和光照”阶段。为了从3D场景转换到2D,场景中的所有物体都需要转换到几个空间。每个空间都有自己的坐标系。这些转换是通过一个空间的顶点转换到另一个空间的顶点来实现的。

  光照(lighting),是这个阶段的另一个主要部分。是使用物体表面的法向量来计算的。通过摄像机的位置和光源的位置,可以计算出给定顶点的光照属性。

对于坐标系变换,我们从物体坐标系开始,每个物体都有自己的坐标系,这有利于几何变换,如平移,旋转和缩放。

  之后,我们进入到世界坐标系,场景中的所有物体都具有统一的坐标系。

  下一步是转换到视图空间,即摄像机坐标系。想象一下:先在世界空间中放一个虚拟摄像机,然后进行坐标变换,使得摄像机位于视图空间的原点,镜头对准z轴的方向。现在我们定义一个所谓的视体(view frustrum),它用来决定了我们能够通过虚拟的3D摄像机所能看到的场景,我们只需要把这些内容渲染出来就行。

之后,所有的顶点将被转换剪切空间,并通过图元装配,组装成图元(primitive,三角形或线)。当物体在视体的外,说明我们不需要渲染这个物体,所以就简单丢弃它。当一个物体有部分在视体内,我们需要进行剪切,同时生成新的顶点。新顶点具有适当的的纹理坐标和颜色坐标。

  接着我们执行透视分割操作,其实就是实现了一个投影变换,把”近大远小“的效果实现出来。把一个视体转换为归一化的立方体。这个立方体的坐标范围:x和y在-1和1之间,z在0和1之间。同时视体内的物体也一同进行缩放。这样一来得到的立方体,便于裁剪操作,也便于将来投影到平面(立方体只需要“扁平化”)。

最后,我们转换到屏幕空间。执行的操作:根据窗口大小将x和y坐标缩放到合适的坐标,这样就得到2D图片了。(请注意,顶点的z坐标会保留,用于以后的深度操作)

  请注意,除了剪裁之外纹理坐标也需要进行转换。还要注意除去不可见的表面[注2]。如出去立方体的背面,就是所谓的背面剔除。

光栅阶段(Rasterization Stage)

光栅这个名词不太好理解,新手可以想象成”透过一把梳子看世界“,类似于将连续的数据转化成离散的数据。这里光栅阶段是指矢量图形转化成像素点的过程。

  GPU需要遍历2D图像并进行转换将数据转化为大量“像素候选”,即所谓的片段(Fragment,片段可以理解为像素的原型,但绝对不是指一大片像素)。片段是包含位置,颜色,深度,纹理坐标等属性的数据结构。片段可能会最终成为图像上的像素。片段是通过检查原始图元和和屏幕像素是否相交来生成的。如果一个片段与一个基元相交,但不与它的任何顶点相交,那么它的属性必须通过顶点之间的属性插值来计算得出。

最后还有一些步骤来得到最终的像素。最终像素颜色的计算:结合纹理和颜色、光照等其他属性,或片段与另一个半透明片段的结合(所谓的α混合),亦或是可选的雾化效果(另一个图形效果)。[注3]

注1:齐次坐标和四元数长得很像,但却是不同的概念,适用领域也不一样。

注2:可见性检查的一些具体操作:

剪刀测试(检查矩形面罩的可见度)

模板测试(类似于剪刀测试,仅针对缓冲区中的任意像素模板)

深度测试(比较片段的z坐标,丢弃更远的片段)

Alpha测试(检查半透明碎片的可见度)

注3:在我们获得最终结果之前,可以应用像抗锯齿这样的附加程序:将一些像素写入内存供以后显示。

【瑞模网】新版SD WebUI卡安装Open_Clip解决方法 前面这个"[Stable-Diffusion根目录]\venv\Scripts\python.exe"需要把你的SD WebUI修改进去.例如说, 你的SD WebUI安装在E盘的`AI_art`下的`SD_WebUI`文件夹里,那么你需要把前面这段替换为`E:\AI_art\SD_WebUI\venv\Scripts\python.exe`现在, 你应该看到了进度条在前进, 如果没有, 请检查是否开启了代理类软件, 将其关闭, 祝你好运.这里详细的讲下三,前俩网上有挺多教程, 我就不赘述了. 阅读详情

相关推荐

【瑞模网】Stable Diffusion 使用指南

📢 :迭代是重复反馈的动作,神经网络中我们希望通过迭代进行多次的训练以到达所需的目标或结果。 每一次迭代得到的结果都会被作为下一次迭代的初始值。 一个迭代 = 一个正向通过 + 一个反向通过更多的迭代步数可能会有更好的生成效果,更多细节和锐化,但是会导致生成时间变长。而在实际应用中,30 步和 50 步之间的差异几乎无法区分。太多的迭代步数也可能适得其反,几乎不会有提高。进行图生图的时候,正常情况下更弱的降噪强度需要更少的迭代步数(这是工作原理决定的)。你可以在设置里更改设置,让程序确切执行滑块指定的迭代

rrmod的博客 862

好用的免费 3d 美术 建模 模型网站总结

首先要推荐的肯定是瑞模网,模型资源丰富,涵盖各个类目,版面也非常的清晰,里面有许多免费模型下载~PixelSquid官方版是一款为PS用户提供的3D素材库,资源也很丰富,根据个人设计需要选择~free3d免费3D模型下载,模型资源丰富,而且有各种格式的模型,有大量、多格式的3D模型~Turbosquid模型素材非常全面,有很多分类,版面也非常的清晰,里面有免费模型下载~pmndrs market 包含 3D 模型、纹理、HDRIS 等的。推荐指数:★★★★★。推荐指数:★★★★★。

rrmod的博客 5890

【瑞模网】Cesium 模型转换(obj max fbx转gltf/3dtiles)

这三种都是3dmax支持的格式,可以统一将.fbx和.max转化为.obj格式,然后通过obj2gltf转为glb或者gltf,其中gltf是比glb的模型要大一点;打开cesiumlab,选择人工模型切片,导入模型,点击确定即可,傻瓜式操作,这个就不叙述了。.obj .max .fbx类型的模型转换为gltf/glb,使用obj2gltf。.obj .max .fbx类型的模型转换为3dtiles,使用cesiumlab。a、导入max模型,导入过程中可能会提示模型材质找不到,先别管,打开。

rrmod的博客 3491

【瑞模网】octane渲染器由于物体过大或太小导致渲染模型破面

有时是由于物体过大或者过小导致的,可以缩放物体,或者新建一个立方体作为参照物,缩放物体,也可以在oc渲染器设置里面,调整光线偏移选项。需要在octane渲染设置里面调整光线偏移或者缩小物体。很多时候都会遇到使用oc渲染器渲染物体破面的问题。

rrmod的博客 511

【瑞模网】unity material以及各种贴图介绍

Ambient Occlusion(AO贴图,环境阻塞贴图,Occlusion贴图,也简称为OCC或白模):使用一张灰白图来表示物体之间相互影响的效果,可以理解为明暗素描那样的一种表现形式,主要用于改善阴影,贴图中越黑的地方,阴影就会加得越深(若输入一张纯白的AO贴图,相当于关掉了AO效果),给场景(模型)更多的深度,有助于更好的表现模型的细节。贴图作为材质中使用的图像。将它们映射到应用这个材质的表面,然后直接应用到诸如漫反射贴图之类的地方,或者在材质中将贴图的贴图像素值作为蒙板使用,或用于其它计算。

rrmod的博客 814

【瑞模网】3Dmax教程:如何快速高效展UV

今天给大家带来的是3Dmax如何快速展uv的小知识,在我们把模型做好之后想要给它上色或者是做材质必须经过展uv这一步,展uv的概念可以理解为把三维的模型铺平展成一个平面,然后我们的颜色就是在张uv线上去做。进入UV界面第一步按面模式,可以给它快速铺平一下,但是在我们做模型中很都是封闭的所以我很会用到很多断开键,断开的意思可以理解成一把剪刀,把这一个面或者一条线断开,这样的话我们就很方便的把三维的模型展成一个平面了。uv格就是我们最后画贴图时候的像素格,格子拉绳,像素也会变化,所以我们要保持格子大小一致。

rrmod的博客 980

【瑞模网】npm install安装报错几种情况

stack Error: Can’t find Python executable “python”, you can set the PYTHON env variable.的报错,然后依赖安装不完整,运行项目就会报错。删除了 C:\Users\dd\AppData\Roaming\npm-cache。C:\Users\dd\AppData\Roaming\npm\ 两个文件夹。第一步:npm config set sass_binary_site=第二步:npm install。

rrmod的博客 1307

【瑞模网】ue4云渲染——像素流送实践

基于ue4的云渲染目的在与将ue4实时渲染图像帧通过视频流的方式一帧一帧的传到浏览器端,主要是因为基于web的三维渲染效果不佳,通过ue4的强大渲染能力与各种功能的支持能力使得网页端也可以实时看到好的效果。安装的过程可能会因为网速比较慢,对硬件的性能有很大的要求,安装的虚拟引擎会有快捷方式,也可以从快捷方式中启动,这样不用每次开Epic Games Launcher,启动之后呈现如下所示,这时候可以按照自己的喜好来选择对应的类型进行项目的尝试。可从该处启动服务器,而非从虚幻引擎安装文件夹中启动。

rrmod的博客 745

【瑞模网】Unity3D基础:贴图与材质球

(Shader)实际上就是一小段程序,它负责将输入的网格(Mesh)以指定的方式和输入的贴图或者颜色等组合作用,然后输出,着色器是一种可以精确控制材质球的工具,通过贴图和着色器的配合开发人员可以创造出非常逼真的模型。Shader是个非常复杂的东西,学习Unity中的Shader编程,最好是之前对OpenGL或Direct3D的渲染状态等相关知识有一个基本的了解,所以可以暂时使用默认的Shader,以后再进行了解/学习。材质(Material):物体的质地,物体看起来是什么做的。材质球文件后缀:.mat。

rrmod的博客 4574

【瑞模网】fbx模型压缩成gltf格式

2、如果之前成功,后来出现Error: Cannot find module ‘***\node_modules\npm\bin\npm-cli.js’,则去Download | Node.js下载Windows binary(.zip)文件,将下载的npm替换自己的npm,再重新安装fbx2gltf即可解决。注意:最好目标文件路径要每个gltf单独建一个文件夹,避免bin文件替代,之前的gltf文件会打不开。3、注意所有都要再管理员身份运行的cmd运行,不然可能会报错!

rrmod的博客 1099

【瑞模网】3dmax渲染——灯光缓存

渲染100云渲染插件已经帮助用户预设好常用的光子比例,不用单独渲染光子图,你在max里完成所有大图设置后,点击渲染100插件,在弹出的渲染设置中,选择调整自己需要的光子比例控制,一般建议可以设置比例为1/2、1/3这样的比例。我们再到GI栏里找到发光贴图,在模式里我们选择从文件,点击下面选择发光文件,找到刚才我们保存发光图的路径,加载进来。①在3D max中,打开需要渲染的场景文件,确认相机角度,调整好相关参数,按F10,弹出设置界面,调整好相关参数,比如将图的尺寸缩小在4倍以内都可以。

rrmod的博客 432

【瑞模网】如何让网站变成黑白色或者灰色?

一般很庄重的事情或者影响力很大的伟人逝世、纪念日的时候,站长会把网站全部网页设置为灰色或者黑白色,以表示对逝者的悼念,本篇整理了四种可以实现网页变成灰色的代码,一起看看吧。如果你不想改动CSS文件,你可以通过在网页头部中的标签内部加入内联CSS代码的形式实现网站网页变灰。PS:以上几种方法,都是通过CSS的滤镜来控制页面的显示而已,唯一不同的就CSS代码调用的方式。我们可以在网页的CSS文件中添加以下的CSS代码,来实现网页黑白色,也就是网站变灰。第二种:在网页的标签内加入以下代码。

rrmod的博客 146

【瑞模网】3ds MAX模型破面如何修复解决

请注意,解决破面问题通常需要结合具体情况进行诊断和调整。不同模型的破面问题可能具有不同的原因和解决方法。因此,根据具体情况进行检查和调整是解决模型破面问题的最佳方法。

rrmod的博客 1339

【瑞模网】cesium城市建筑颜色渲染以及泛光渐变效果

2、cesium给建筑物设置类似泛光效果,可以在暗色地图突出显示建筑,这种光效看起来也蛮不错的,不过需要用到着色器(Shader)语言,根据别人写的着色器代码修改了一下,符合自己的使用,根据不同建筑物高度设置是否需要泛光,以及是否需要设置渐变色,这些简单的设置都可以在代码自行设置。

rrmod的博客 2438

【瑞模网】Stable Diffusion 本地部署教程

最近看Stable Diffusion开源了,据说比Disco Diffusion更快,于是从git上拉取了项目尝试本地部署了,记录分享一下过程~

rrmod的博客 895

【瑞模网】与UE5 像素流送

在UE5打包好的Windows\Samples\PixelStreaming\WebServers\SignallingWebServer\platform_scripts\cmd路径下有个run_local.bat,首先将其启动起来。打包好的js文件拷贝到VUE里‘app.js’与‘webRtcPlayer.js’4:打包结束后,将UE的运行包新建一个快捷方式(按住ATL直接拖动)8:将app.js更改为webrtc.js(可有可无)接着启动Windows里我们创建的快捷方式启动。3:打包window。

rrmod的博客 846

渲染管线概述

渲染管线概述

qq_44350348的博客 457

化学气相沉积CVD工艺中MKS下游排气高速节流阀的国产化替代方案及产品

对标MKS、VAT和CDK等国外公司的下游排气高速节流阀系列产品,本文介绍了相应的国产化替代方案和产品。基于CVD工艺,技术方案将下游流量调节阀变为了下游压力调节阀,并采用分体结构,将调压阀与PID控制器分离,调压阀具备大口径和高速功能,电子气控驱动调压阀快速动作,PID控制器接收真空计信号和控制气控驱动阀,可实现阀门全开时间小于0.1秒。

Shanghai_Eyoung的博客 5259
上一篇: 【瑞模网】VSCode如何直接克隆git仓库代码?
下一篇: 【瑞模网】Unity动画触发方法总结
瑞模网
博客等级 码龄4年 8粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值