渲染_渲染管道 - CSDN
精华内容
参与话题
  • 渲染的基本常识

    千次阅读 2018-03-17 13:31:37
    1.渲染流程(又叫渲染管线、渲染流水线) 渲染流程的任务:从一个三维的场景出发,渲染出一张二维的图像。 《Real-Time Rendering》中将渲染流程分成三个阶段:应用阶段、几何阶段、光栅化阶段。 应用阶段 ...

    内容会持续更新,有错误的地方欢迎指正,谢谢!

    1.渲染流程(又叫渲染管线、渲染流水线)

    渲染流程的任务:从一个三维的场景出发,渲染出一张二维的图像。

    《Real-Time Rendering》中将渲染流程分成三个阶段:应用阶段、几何阶段、光栅化阶段。

    这里写图片描述

    应用阶段

    1. 主要是CPU与内存打交道,输出渲染图元(渲染所需的几何信息:点、线、三角面等),将图元加载到显存中,如此,GPU可快速访问这些数据。
    2. 设置渲染状态:也就是使用什么材质、纹理、着色器等。
    3. 调用Draw Call:DrawCall的发起方是CPU,接收方是GPU,它告诉GPU按照设置的渲染状态来渲染,一个Draw Call指向本次需要渲染的图元列表。

    如下图所示,发送渲染命令就是发送Draw Call。
    这里写图片描述

    几何阶段

    主要负责顶点坐标变换、屏幕映射
    顶点坐标变换:模型坐标—>世界坐标—>观察坐标—>裁剪坐标—>屏幕坐标

    MVP矩阵能将顶点从模型空间转换到裁剪空间。顶点着色器(有多少个顶点就会运行多少次)的最基本的任务就是通过MVP矩阵(模型-视图-投影矩阵)把顶点坐标从模型空间转换到裁剪空间中。从裁剪空间到屏幕空间是Unity自动完成的。

    投影矩阵:投影矩阵并没有进行真正的投影,而是为后面真正的投影做准备。投影是个降维的过程,从三维降到二维,但真正的投影发生在后面的屏幕映射中,通过齐次除法获得二维坐标。

    光栅化阶段

    1. 通过三角形设置和遍历计算每个图元覆盖了哪些像素:这时三维模型已经投影到了二维平面上,但屏幕是一个个小的像素格子,光栅化就是在选格子嘛。
      三角形设置:计算光栅化一个三角网格所需的信息,它的输出是为下一步骤做准备。
      三角形遍历:找到哪些像素被三角网格覆盖的过程。对应像素会生成一个片元,而片元中的状态是对三个顶点的信息进行插值得到的。
      这里写图片描述

    2. 为这些像素计算它们的颜色:光栅化后得到了格子,要搞上颜色,且没法将一个格子一半涂成白色一半涂成黑色,所以我们追求高像素屏幕,像素越高,效果越好。这时候会用到片元着色器(有多少个像素就会运行多少次)负责给每个像素上色。
      这里写图片描述

    3. 各种测试用于决定每个片元的可见性,涉及了很多测试工作。比如:模板测试(限制渲染区域)、深度测试(不小于深度缓冲区中该片元的深度值就舍弃该片元)等测试。如果一个片元通过了所有测试,就需要把这个片元的颜色值和已经存储在颜色缓冲区中的颜色进行混合,最后再写入颜色缓冲区。也就是将片元的颜色值一个个地堆叠起来。

    2.MipMap和LOD

    MipMap这个东西在二维比较常见,三维通常会用到LOD。

    MipMap:给一张图通过图像处理自动生成多张低分辨率的图。为了解决图像无限缩小(960w平方公里的图片相对于你手机来说,那就是无限缩小)引起的失真问题。

    LOD:层次细节,对同一个物体,就是它根据离摄像机的远近来使用不同的模型。不过,LOD分几个级别,美术就得做几套资源给你,不像MipMap一样电脑帮你自动生成。

    3.优秀的高光反射光照模型Blinn-Phone

    虽然是一个经验模型,但已经能满足大多数的需求了,很常用。

    公式:
    这里写图片描述

    C light是入射光线的颜色和强度
    M specular是材质的高光反射系数
    n是法线方向
    h是由视角方向v和光照方向l 共同决定的,是一个半角向量
    n和h做点积。
    这里写图片描述

    4.法线贴图

    法线贴图呈现为蓝紫色,美术可以用软件生成。法线贴图的每个像素的RGB存的是模型法线的XYZ。若要实现外表凹凸不平的效果,常用的方法是使用一张法线贴图来修改模型表面的法线,以便为模型提供更多的细节,这种方法又被称为法线映射。

    另外,渐变纹理(又叫坡度图)可用于渲染卡通风格;遮罩纹理可给模型增加更多的细节,让其某些地方看起来更亮一些,有些地方更暗一些。

    5.基本shader的编写

    Unity Shader的基本结构:根目录、Property属性、 SubShader子着色器、Fallback回滚。

    其中,一个SubShader中可以有多个Pass,但Pass数目过多,会造成渲染性能降低,因为一个Pass定义了一次完整的渲染流程。

    SubShader可以理解成由Tags(标签:告诉Unity怎样渲染这个对象)和RenderSetup(渲染状态设置:是否开启深度测试等)和Pass三部分组成。

    在材质面板上显示属性的Shader代码:(注意a2v和v2f这两个结构体的使用)

    Shader"Unity Book/Chapter5/Simple Shader"
    {
        Properties
        {  
            _Color("Color Tint",Color) = (1.0,1.0,1.0,1.0)  
        }  
        SubShader
        {  
            Pass
            {  
                CGPROGRAM  
                #pragma vertex vert  
                #pragma fragment frag  
    
                //在Cg代码中,我们需要定义一个与属性名称和类型都匹配的变量
                uniform fixed4 _Color;  
    
                struct a2v 
                {  
                    float4 vertex : POSITION;  
                    float3 normal : NORMAL;  
                    float4 texcoord : TEXCOORD0;  
                };  
    
                struct v2f 
                {  
                    float4 pos : SV_POSITION;  
                    fixed3 color : COLOR0;  
                };  
    
                v2f vert(a2v v) 
                {  
                    v2f o;  
                    o.pos = UnityObjectToClipPos(v.vertex);  
                    o.color = v.normal * 0.5 + fixed3(0.5, 0.5, 0.5);  
                    return o;  
                }  
    
                fixed4 frag(v2f i) : SV_Target
                {  
                    return fixed4(i.color,1.0);  
                }  
                ENDCG  
            }  
        }  
    }  

    6.Unity引擎中前向、延迟渲染路径的区别

    前言:
    G-buffer:所有物体在不进行光照运算的情况下被绘制,然后对每个像素生成一组数据,这些数据包括位置、法线、高光颜色等。

    正题:
    所有的渲染路径的核心都是光照的处理。相比较逐顶点光照,游戏开发者更喜欢逐像素光照,但逐像素光照有一个显著的缺点:每个光源会让每个在它光照范围的物体增加一个渲染批次,所以才会有一个物体最多受4个光源影响的限制。

    所以,延迟渲染是光照问题的救星!

    1. 延迟渲染路径:使用任意数量的光源,也不会增加额外的渲染批次。因为大部分模型在渲染的时候并不需要光照计算,而是在屏幕空间中才使用光照信息,就如同渲染一张2D图片,这时使用的数据是在上一个批次中生成的G-buffer
    2. 前向渲染路径: 把空间的点进行各种剪裁后,再进行处理,所处理量远远大于我们最终看到的,并且是对每个光源进行计算产生最终结果。

    那到底采用哪个?

    1. 延迟渲染的确好,但是使用有限制。延迟渲染不允许我们渲染半透明物体。因为如果场景中存在半透明的物体,只能记录一个物体的信息。缺乏抗锯齿的支持,但你可以使用屏幕空间抗锯齿算法。
    2. 移动设备上延迟渲染的性能会比前向渲染的性能要差一些,如果你的场景中只有一个光源,那么使用延迟渲染是不划算的。
    展开全文
  • 什么是渲染

    千次阅读 2012-10-21 14:14:34
    渲染(Render)在电脑绘图中,是指:用软件从模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。渲染这个术语类似于...

    渲染Render)在电脑绘图中,是指:用软件模型生成图像的过程。模型是用严格定义的语言或者数据结构对于三维物体的描述,它包括几何、视点、纹理以及照明信息。图像是数字图像或者位图图像。渲染这个术语类似于“艺术家对于场景的渲染”。另外渲染也用于描述:计算视频编辑文件中的效果,以生成最终视频输出的过程。

    渲染是三维计算机图形学中的最重要的研究课题之一,并且在实践领域它与其它技术密切相关。在图形流水线中,渲染是最后一项重要步骤,通过它得到模型与动画最终显示效果。自从二十世纪七十年代以来,随着计算机图形的不断复杂化,渲染也越来越成为一项重要的技术。

    渲染的应用领域有:计算机与视频游戏模拟电影或者电视特效以及可视化设计,每一种应用都是特性与技术的综合考虑。作为产品来看,现在已经有各种不同的渲染工具产品,有些集成到更大的建模或者动画包中,有些是独立产品,有些是开放源代码的产品。从内部来看,渲染工具都是根据各种学科理论,经过仔细设计的程序,其中有:光学视觉感知数学以及软件开发

    三维计算机图形的预渲染或者实时渲染的速度都非常慢。预渲染的计算强度很大,通常是用于电影制作;实时渲染经常用于三维视频游戏,通常依靠带有三维硬件加速器的图形卡完成这个过程。

    展开全文
  • 渲染入门

    2019-12-03 11:10:10
    什么是渲染 说白了,渲染就是计算机绘制数张用于显示的图片,并连续播放实现动画效果的过程。像在3D游戏里面,任何物体都是一个预先制作好的模型,玩家作为游戏世界里的主人公可以调整自己的视角,屏幕显示的内容会...

    什么是渲染

    说白了,渲染就是计算机绘制数张用于显示的图片,并连续播放实现动画效果的过程。像在3D游戏里面,任何物体都是一个预先制作好的模型,玩家作为游戏世界里的主人公可以调整自己的视角,屏幕显示的内容会随视角的变化而变化。游戏里面的物体模型是3D的,屏幕显示出来的画面只是一张具3D视觉效果的2D图片,计算机将3D场景通过计算产生出符合人物当前视角下的2D图片,这个过程叫做渲染。

    离线渲染和实时渲染

    其实不止在游戏中使用到渲染,比如我们知道,任何视频都是由许多张图片组成的,快速且连续播放这些图片即成了视频,每一张图片称作一帧,播放图片的速度叫做帧率。拿动画制作举例,屏幕上有一个小球,将它一分钟内的运动轨迹设置成从屏幕左边移动到屏幕右边,然后计算机将这一分钟的动画生成出来的时候,就需要去根据设置好的运动轨迹去渲染(计算并生成)每一张用来播放的图片。再举个例子,做视频编辑的时候,给整个视频加一个灰调滤镜,计算机会渲染整个视频在时长范围内的每一帧,将每一帧的色调都变成灰色。这两个例子都属于离线渲染,即在播放图片之前就已经渲染好了,播放的内容是之前就决定好的内容。

    而游戏中的渲染就是实时渲染,即一边渲染一边播放,因为游戏画面是一个依靠玩家操作来决定播放内容的东西,当计算机渲染好当前任务视角下的场景后,计算机并不知道下一秒玩家会把视角切换到什么地方,如果实时渲染的速度太低,就会导致游戏画面卡顿等问题。

    本篇文章仅介绍实时渲染。

    影响渲染速度的因素

    1. 硬件性能。计算机依靠CPU和GPU来计算各种图像相关的信息,CPU和GPU的性能影响渲染速度。关于CPU与GPU的介绍可参考【CPU与GPU的区别】。关于渲染管线与CPU和GPU的关系在文章后面还会介绍。
    2. 美术资源。美术资源很大很精细的话需要渲染的时间就比较久,但事实上,并不是资源越大越精细越好,比如手游,手机由于屏幕较小,能够展示的画面精细程度有限,如果使用过大的美术资源不会起到预期的效果,反而会因为花费大量时间渲染这些资源导致整个游戏的运行性能降低。

    渲染管线

    渲染管线不是某个具体的东西,它指的是渲染的整个流程,它是一条完整的流水线,由不同的阶段组成,上一个阶段的计算输出是下一个阶段的计算输入。下图就是渲染管线,接下来会就其中每个阶段进行粗略介绍。
    渲染管线

    应用阶段

    应用阶段的主要参与者是CPU,当然也可能忽视掉GPU对渲染的特殊功能来使用GPU。这个阶段做的事情就是物理模拟、碰撞检测、计算移动等等。

    几何阶段

    几何阶段重点说一下,这个阶段又可以更细地划分为四个步骤:顶点计算、投影、裁剪、屏幕映射。

    1. 顶点计算

    首先大家需要知道什么是三角形面片和顶点,任何3D模型都是由若干三角形面片组成的(如下图),而每个三角面片由三个顶点构成,每个顶点中存储了该顶点的坐标、颜色、纹理、光照等信息,计算机通过存储一个模型的顶点集合来存储这个模型。
    任何3D模型都是由若干三角形面片组成的
    在应用阶段计算了物体模型运动后的位置,每个顶点内存储的坐标信息都得到了更新,但这个位置信息并不是可以直接使用的。物体模型有自己的坐标系,顶点中存储的就是物体模型自己的坐标系坐标,但我们要渲染的是一张以摄像机为视角的画面,所以我们要将物体坐标系转换成世界坐标系,再转换成摄像机坐标系,这一系列的坐标转换就是顶点计算步骤所做的重要事情。

    1. 投影

    顶点计算完成后,接下来将这个准备就绪的3D空间通过投影转换成2D图像。渲染中常用的两种投影方式是 Orthographic 和 Perspective 。下图 a 为 Orthographic ,b 为 Perspective 。
    Orthographic 和 Perspective
    在上图中,圆柱体与摄像机的距离比正方体与摄像机的距离要小,在这种情况下,使用 Orthographic 投影出来的图像,圆柱体和正方体一样大,使用 Perspective 投影出的图像,圆柱体比正方体小, Perspective 投影方式可以实现近大远小的效果。

    和 Perspective 投影相关的还有一个重要概念,齐次坐标。人们接触过得很多图像都遵循近大远小的规则,就像下面这张图片,近处的小女孩很大,远处的埃菲尔铁塔很小。仅仅使用物体模型的(x, y, z)坐标是无法实现近大远小的效果的,需要使用(x, y, z, w)齐次坐标,其中w表示深度,用它来标识物体模型的远近程度。
    近大远小
    将物体模型的(x, y, z)坐标用(x, y, z, w)齐次坐标表示后,投影出来的物体模型坐标是(x/w, y/w, z/w),由此看来好像是w控制着x、y、z的缩放,其实不是,事实上是z在控制着w,z决定w的大小,z越大,物体越远,w就越大,而对应的投影后的x和y越小。

    1. 裁剪

    顶点计算和投影做完后,意味着3D信息转化成2D信息基本完成,裁剪步骤是将整个场景的2D信息中视角范围的部分(要显示在屏幕上的部分)裁剪出来,去除多余的部分,只有裁剪出来的部分才能进行光栅化处理。

    1. 屏幕映射

    屏幕映射是将物体的3D坐标转换成屏幕的2D坐标,方便之后光栅化阶段的像素处理。

    光栅化阶段

    光栅化阶段主要是对屏幕的每个像素点进行处理。这个阶段可以分成两个步骤:像素着色和合并,像素着色是高度可编程的,可以自定义计算机要进行的着色计算,合并是高度可配置的,可以决定计算出来的颜色该如何使用。

    1. 像素着色

    经过几何阶段的处理,我们已经拿到了2D信息,接下来可以针对屏幕上的每个像素点进行处理了。像素着色是根据该像素点的位置、光照、纹理等信息计算出该像素点的颜色。像素着色计算完毕后,会把颜色结果存储在 ColorBuffer 中,ColorBuffer 是一块用来存放RGB颜色的内存。

    1. 合并

    一般来说,渲染场景内的多个物体时按照它们从远到近的顺序渲染才能保证远处的物体不会遮挡住近处的物体,但实际上,渲染管线并不会遵循这个规则来渲染物体模型,并且也能正常渲染好各个物体,之所以能顺利完成这个工作,是因为有 DepthBuffer 的支持,DepthBuffer 是一块用来存放像素深度的内存,里面存放了每个物体模型的深度值。当渲染某一个物体模型时,如何处理该物体与其他物体的重合处,是拿当前物体的深度值和重合物体的深度值作比较,来判断重合的地方该渲染谁的颜色,判断是谁遮挡了谁。有了 DepthBuffer 的支持,渲染管线不必按照物体从远到近的顺序去渲染物体模型。

    以上说的渲染方式大多数情况下适用于非透明物体,而透明物体一般是没有记录深度值的,透明物体按照从远到近的顺序来渲染。另外,透明物体会在非透明物体渲染好之后再被渲染。

    实时渲染中,实现半透明渲染的通常做法是将在场景不透明物体完成渲染之后,对场景中半透明物体到摄像机的距离进行排序,从距离摄像机最远的(Z值最大)的物体开始逐个叠加渲染,并在渲染中与输出缓冲中的原有颜色进行混合叠加。对于 2D 半透明渲染,这样的实现是足够的,而在 3D 场景中,由于排序基于物体的轴点位置,渲染时会出现以物体为单位的覆盖效果,例如物体间循环覆盖的效果(如下图),就无法被正确的渲染。此外对于一些自身具有复杂结构的半透明物体,自身三角形的渲染次序也会影响画面的观感。这种情况下,需要像渲染非透明物体一样使用深度值来渲染透明物体。
    透明物体的渲染问题

    CPU与GPU的渲染合作

    你可以粗浅地认为上述整个渲染管线中应用阶段和几何阶段是由CPU负责的,光栅化阶段是由GPU负责的,最重要的一点是,GPU才是那个将 ColorBuffer 的颜色填充到每个像素点的人,GPU才是那个负责最后的2D图像绘制的人。

    有两个概念需要提一下,那就时渲染频率和显示频率,这是两个不同的概念,渲染频率指的是每秒能渲染出来的图像数量,显示频率指的是每秒能绘制的图像的数量,也就是平常说的帧率。

    之前也说过,在像素着色的时候,会把一张将要显示的图像的每个像素点的颜色存储在 ColorBuffer 中,假设我们只有一个 ColorBuffer , 根本没办法连贯地渲染一连串的图像,在第一张图像渲染完成后,GPU将 ColorBuffer 拿去做绘制显示,这个 ColorBuffer 在显示期间将一直被占用,导致CPU没有另外的 Buffer 拿来做第二张图像的计算。

    所以至少需要两个 ColorBuffer 用于渲染期间的交替使用,下图展示的就是使用两个 ColorBuffer 的工作流,VSync 代表帧率,屏幕占用 ColorBufferA 显示图像A时,GPU和CPU可以使用 ColorBufferB 来渲染图像B,下一帧再将渲染好的图像B显示出来,两个 ColorBuffer 如此交替即可实现连贯地图像渲染。
    两个ColorBuffer的理想情况
    但是即使使用了两个 ColorBuffer 也还是存在一个问题。上图中保证两张图片之间能够流畅切换有一个重要前提,那就是渲染频率小于帧率,在显示下一张图像前就将这张图像渲染完成,这件事在现实中是没办法保证的,当渲染频率大于帧率时,就会出现下面的情况。
    两个ColorBuffer的问题
    在屏幕想要切换图像时,发现下一张图像(B)还没有被渲染好,它就会继续显示当前图像(A),直到下一次切换图像,才会显示下一张图像(B),或许你会发现这样一个问题,假设在渲染频率小于帧率的情况下,渲染工作进行得非常理想,此时的帧率是20,后来渲染频率变得比帧率稍慢一点,导致每两次显示机会都在显示同一张图像,那么此时帧率为10——仅仅是因为渲染频率下降了一点,帧率就减半了,这显然是一种不合理的损失。

    或许你会指出,在切换图像时,为什么不能把图像B已经渲染好的部分先拿来绘制,因为即使这样做,也不会有特别好的效果。
    绘制产生的问题
    就像这张图像一样,绘制一半的图像B和剩下的另一半图像A,这种效果也不怎么样。

    为了优化这个问题,可以使用三个 ColorBuffer 。
    使用三个ColorBuffer
    使用三个 ColorBuffer 或许在刚开始渲染的时候还是没办法避免卡顿,但后来就可以很流畅了。


    渲染相关的基础知识我暂时就学习了这么多。

    展开全文
  • 3D游戏引擎之GPU渲染(DX篇)

    万人学习 2018-10-22 21:38:02
    本次课程主要是针对3D游戏引擎内部的GPU之Shader渲染处理,告诉大家引擎底层是如何与Shader代码结合的。从基本的灯光渲染,环境渲染到后的Bloom渲染
  • 实时渲染——三种渲染方法介绍

    千次阅读 2017-02-25 11:08:30
    实时渲染,一般有三种渲染方法,多光源一次渲染,多光源多次渲染和延迟着色。多光源一次渲染:对于每个物体,计算所有光源对其的影响来对该物体进行渲染for each object do for each light do framebuffer = light...

    实时渲染,一般有三种渲染方法,多光源一次渲染多光源多次渲染延迟着色

    多光源一次渲染:对于每个物体,计算所有光源对其的影响来对该物体进行渲染

    for each object do
        for each light do
            framebuffer = light_model(object,light);

    这是一个简单的方法,但是存在一些问题和缺陷。
    第一个问题由于光照是针对每一个物体进行的,因此*之前渲染着色的对象能够被之后渲染着色的对象所取代*,换句话讲,对隐藏对象进行着色是浪费的。
    第二个问题是如何在可编程渲染管线中,在一次渲染过程中管理多个光源。此外,该方法很难与阴影算法进行集成。

    多光源多次渲染:对于每一个光照计算过程,执行所有光照计算。因此,对于每一个光源,所有被该光源影响的物体会被渲染。

    for each light do
        for each object affected by light do
            framebuffer += light_model(object,light);

    与第一个方法类似,
    第一个问题:隐藏曲面会造成渲染的浪费。
    第二个问题:光照首先对于每一个光源计算,然后对每一个物体计算。有可能有一些计算过程(例如,顶点转换和三角面片设置[Moller02])由于同一个物体在另外一个光照计算中被再次处理而重复计算。
    第三个问题:由于光源排序和物体排序时互斥的,因此很难执行此操作。

    延迟着色:原理,将每个像素点的属性存储在显存里面用于后面的渲染,后面的渲染则是一个像素一个像素的渲染,每个像素都会独立的渲染。
    在上面两种渲染方法,延迟着色有很大的优势,特别是在效率上面,时间复杂度要小很多

    for each object do
        G-buffer = lighting properties of object;
    for each light do
        framebuffer += light_model(G-buffer,light);

    延迟着色还有一些其它优势。例如,一旦几何处理和光源处理进行解耦分离,很容易进行批操作。

    展开全文
  • 网页渲染原理

    千次阅读 2018-10-29 14:49:24
    1. JavaScript绝对是最火的编程语言之一,一直具有很大的用户群,随着在服务端的使用(NodeJs),更是爆发了极强的生命力。编程语言分为编译型语言和解释型语言两类,编译型语言在执行之前要先进行完全编译,而解释...
  • 自己的问题(太菜) <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> table { width: 800px;... border: 2px sol
  • 渲染

    2019-07-23 16:17:56
    渲染 一.渲染流程有四个主要步骤: 解析HTML生成DOM树 - 渲染引擎首先解析HTML文档,生成DOM树 构建CSSOM树 - 接下来不管是内联式,外联式还是嵌入式引入的CSS样式会被解析生成CSSOM树 构建Render树 - 根据...
  • html网页渲染的基本过程

    万次阅读 2017-11-27 18:45:42
    整个渲染的过程其实就是将URL对应的各种资源,通过浏览器渲染引擎的解析,输出可视化的图像。渲染模块: 从图中可以看出,一个渲染引擎大致包括HTML解释器、CSS解释器、布局和JavaScript引擎。
  • 在three.js中,要渲染物体到网页中,我们需要3个组件:场景scene、相机camera 和渲染器renderer。有了这三样东西,才能将物体渲染到网页中去。 创建这三要素的代码如下 : var scene = new THREE.Scene(); // 场景 ...
  • 在上一篇参考如何用 Blender 实现 体积云材质效果 后,这次结合之前的 飞机模型,制作 天空飞行动画 体积云 给飞机周边添加上 体积云材质 的 Cube 添加动画 给 飞机主体、螺旋桨 添加上主体加上 旋转、位移 ...
  • 游戏开发入门(三)图形渲染

    万次阅读 多人点赞 2018-04-12 11:17:07
    视频链接:游戏开发入门(三)图形渲染(3节课 时常:约2小时20分钟) 视频链接:一堂课学会shader——渲染拓展课程(3节课 时常:约1小时20分钟) 笔记与总结(请先学习视频内容): 游戏开发入门(三)图形...
  • Chromium网页渲染机制简要介绍和学习计划

    万次阅读 热门讨论 2017-01-06 12:17:28
    作为一个浏览器,快速地将网页渲染出来是最重要的工作。Chromium为了做到这一点,费尽了心机,做了大量优化工作。这些优化工作是卓有成效的,代表了当今最先进的网页渲染技术。值得一提的是,这些渲染技术不仅适用于...
  • 服务端渲染与客户端渲染的区别

    千次阅读 2019-03-02 20:03:51
    服务端渲染(SSR)与客户端渲染(BSR)都是数据渲染的主要的方式 任何的WEB项目基本的需要就是将后端的数据库中的数据渲染到页面上 客户端渲染 前端利用ajax等数据交互手段获取服务端提供的数据之后,渲染到HTML...
  • 根据树状数据渲染树状下拉选项

    万次阅读 2020-06-19 10:37:07
    作者是把非末级的选项给禁用了,如果你们需求是要不禁用求留意笔者渲染时的操作。 接下来我们一起来做这个效果: 笔者所用的是react + antd,用其他的架构也是类似,请自行举一反三: 一:首先要处理从后端拿到的...
  • Vue客户端渲染和服务端渲染异同

    千次阅读 2018-09-20 18:15:18
    本文比较服务端和客户端渲染的不同,并用实例验证,同时会讲解一些Vue服务端渲染的概念。 本文不讲Vue服务端渲染的具体实现过程,需要学习服务端渲染的同学可以异步Vue服务端渲染官方教程地址: ...
  • 本文由@浅墨_毛星云 出品,首发于知乎专栏,转载请...按照既定规划,本文将主要关注基于物理的渲染的核心理论与渲染的光学原理,以在整个系列中起到理论支柱的作用。 从本文内容而言,只有透过渲染现象看到光与真...
  • 服务器渲染与前端渲染

    千次阅读 2019-02-09 14:51:30
    服务器渲染(后端渲染) 浏览器发送请求到服务器端,服务器端处理请求并处理好数据,然后生成html文件,并返回给浏览器。 传统的jsp、php都是属于服务器渲染。 客户端渲染(前端渲染) 服务器端处理请求后将数据返回...
  • 二次元卡通角色渲染技术概述

    千次阅读 2019-09-29 10:12:08
    好久没写博客了,最近一直在学习二次元卡通渲染技术,自从崩坏三,闪耀暖暖等二次元游戏出来后,作为程序员对他们使用的渲染技术很感兴趣,二次元卡通目前主要分为欧美卡通和日式卡通,我们以日式卡通为例给读者分享...
  • 基于物理的渲染技术(PBR)系列一

    万次阅读 2019-04-01 17:47:03
    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏...PBR,或者用更通俗一些的称呼是指基于物理的渲染(Physically Based R...
1 2 3 4 5 ... 20
收藏数 633,322
精华内容 253,328
关键字:

渲染