Welcome back!    This post deals with the second half of pixel processing, the “join phase”. The previous phase was all about taking a small number of input streams and turning them into lots of independent tasks for the shader units. Now we need to…
In this part, I’ll be dealing with the first half of pixel processing: dispatch and actual pixel shading. In fact, this is really what most graphics programmer think about when talking about pixel processing; the alpha blend and late Z stages we’ll e…
Welcome back to what’s going to be the last “official” part of this series – I’ll do more GPU-related posts in the future, but this series is long enough already. We’ve been touring all the regular parts of the graphics pipeline, down to different le…
Welcome back.     Last time, we dove into bottom end of the pixel pipeline. This time, we’ll switch back to the middle of the pipeline to look at what is probably the most visible addition that came with D3D10: Geometry Shaders.     But first, some m…
Welcome back! This time, we’ll look into what is perhaps the “poster boy” feature introduced with the D3D11 / Shader 5.x hardware generation: Tessellation. This one is interesting both because it’s a fun topic, and because it marks the first time in…
In this installment, I’ll be talking about the (early) Z pipeline and how it interacts with rasterization. Like the last part, the text won’t proceed in actual pipeline order; again, I’ll describe the underlying algorithms first, and then fill in the…
After the last post about texture samplers, we’re now back in the 3D frontend. We’re done with vertex shading, so now we can start actually rendering stuff, right? Well, not quite. You see, there’s a bunch still left to do before we actually start ra…
Welcome back. Last part was about vertex shaders, with some coverage of GPU shader units in general. Mostly, they’re just vector processors, but they have access to one resource that doesn’t exist in other vector architectures: Texture samplers. They…
At this point, we’ve sent draw calls down from our app all the way through various driver layers and the command processor; now, finally we’re actually going to do some graphics processing on it! In this part, I’ll look at the vertex pipeline. But be…
Welcome back. Last part was about vertex shaders, with some coverage of GPU shader units in general. Mostly, they’re just vector processors, but they have access to one resource that doesn’t exist in other vector architectures: Texture samplers. They…
It’s been awhile since I posted something here, and I figured I might use this spot to explain some general points about graphics hardware and software as of 2011; you can find functional descriptions of what the graphics stack in your PC does, but u…
Welcome back! This time, the focus is going to be on Stream-Out (SO). This is a facility for storing the Output of the Geometry Shader stage to memory, instead of sending it down the rest of the pipeline. This can be used to e.g. cache skinned vertex…
Welcome back. This time we’re actually gonna see triangles being rasterized – finally! But before we can rasterize triangles, we need to do triangle setup, and before I can discuss triangle setup, I need to explain what we’re setting things up for; i…
之前的几篇翻译都烂尾了,这篇希望....能好些,恩,还有往昔呢. ------------------------------------------------------------- primitive 图元 tris  三角形 quad 栅格 ------------------------------------------------------------ 第十部分 译:minggoddess 欢迎回来.上一次,我们一头扎进了像素管线的最底端.这次,切换到管线的中间位置看一下伴随D…
BACKGROUND Many algorithms on a graphics processing unit (GPU) may benefit from doing a query in a hierarchical tree structure (including quad-trees, oct-trees, kd-trees, R-trees, and so forth). However, these trees can be very deep, whereby traversi…
1.总结:Graphics pipeline 主要分为两部分工作 把3D坐标转换成2D坐标 把2D坐标转换成真实的有颜色的像素 2.下图就是一个顶点数据经过几个步骤后转化成显示在屏幕上像素的过程(一般也叫做GLSL的流水线工作流程),蓝色图形部分是我们可以通过写shader文件参与的,目前参与比较多的主要是顶点和片段shader. 3. 对上图每个步骤进行解析 3.1 Vertex Data[]传到顶点shader程序 3.2 顶点着色程序对顶点数据进行转换,把Vertex Data中的3D坐标…
一:OpenGL ES 3.0 Graphics Pipeline  渲染管道如下图 1.Vertex Buffer/Arrays Objects的数据由应用程序传进来 2.由上图可以看到Textures在Vertex Shader处理之后再传入到Fragment Shader,所以Vertex Shader里无法访问Texture数据. 这针对OpenGL ES 3.0而言,  但像最新的DirectX.HLSL是允许在Vertex Shader里访问Textures的. 3.Primitiv…
A graphics pipeline consists of shader stages, a pipeline layout, a render pass, and fixed-function pipeline stages. Dynamic State A dynamic pipeline state is a state that can be changed by a command buffer command during the execution of a command b…
整理下管线 此时一定要有这张图 注意表中的数据流向 强调几个细节 之前对次序理解有点乱 rasterizer之前 管线里是只有逐顶点信息的 IA里面会setup primitive  通过PrimitiveTopology属性 triangle strip之类的 ------------------- 在vs 会用matrix 做space trans到 hcs model- world ---view---- homogeneous clip space-----normalized devi…
本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官方教程The Profiler window翻译 Unity性能优化(2)-官方教程Diagnosing performance problems using the Profiler window翻译 Unity性能优化(3)-官方教程Optimizing garbage collection in Uni…
http://www.taidous.com/article-667-1.html 前言 首先,这个系列文章做个大致的介绍,题目"浅谈Unity",因为公司和国内大部分3D手游开发还是以Unity3d为主,而Unity不开源的问题,也注定大部分用户是无法在架构和API的层面对它做改造和优化的,所以本文也不会涉太多底层的优化方法,为了争取能让更多制作相关的人员看懂,而是针对Unity的设计,把如何在设计和使用上来规避和利用的"浅显"方法用易懂的方式来描述."…
目录 一.导言 1.1 为何要了解GPU? 1.2 内容要点 1.3 带着问题阅读 二.GPU概述 2.1 GPU是什么? 2.2 GPU历史 2.2.1 NV GPU发展史 2.2.2 NV GPU架构发展史 2.3 GPU的功能 三.GPU物理架构 3.1 GPU宏观物理结构 3.2 GPU微观物理结构 3.2.1 NVidia Tesla架构 3.2.2 NVidia Fermi架构 3.2.3 NVidia Maxwell架构 3.2.4 NVidia Kepler架构 3.2.5 NV…
CPU bound:CPU性能边界,是指CPU计算时一直处于占用率很高的情况. GPU bound:GPU性能边界,同样的是指GPU计算时一直处于占用率很高的情况. 原文:https://unity3d.com/cn/learn/tutorials/temas/performance-optimization/optimizing-graphics-rendering-unity-games?playlist=44069   简介 在这篇文章中,我们将学习Unity渲染一帧时在幕后会发生什么,渲…
原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   欢迎回来.这次我们去看看三角形的光栅化.但在光栅化三角形之前,我们需要执行三角形设置,并且在设置三角形之前,我还要解释一下为了什么做的准备,我们来聊聊三角形硬件光栅化算法.   如何画一个三角形   首先,给很熟悉这部分并自己写过优化的软纹理映射的人一点小提示:三角形光栅器一次要处理一堆东西:跟踪三角形的形状,插值出坐标u和v(对于透视矫正映射,是u/z,v/z…
原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   在上一篇关于纹理采样器之后,我们现在回到了3D前端.那执行完了顶点着色,现在就可以实际的渲染东西了,对吗?可惜,还不行.你看,在我们实际开始光栅化图元之前,仍然还有很多事要做.所以在本篇里我们不会看到任何光栅化内容——还得等到下次讲.   图元组装   当我们离开顶点管线时,我们从shader单元里得到了一块着色过的顶点,这块顶点中包含了一些完整的图元——我们不…
原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   欢迎回来.上个部分是关于vertex shader的,还带有一些GPU shader通用单元的概念.重要的是,它们仅仅是向量处理器,但是它们需要访问不在向量架构上的资源:纹理采样器.它们是GPU管线的一部分,并且十分复杂(还很有趣!)足以保障它们自己的协议约束,那么就开始讲解吧.   纹理状态(Texture state)   在我们开始实际的纹理操作之前,让我…
原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   此时,我们一路上通过多个驱动层和命令处理器将draw call从应用程序发送过来.最后终于要做图形处理了.最后一部分,来看一下顶点管线.不过在开始之前…   一些名词   我们现在所在的3D管线依次由若干阶段构成,每个阶段都有特殊功能.来给这些将要谈到的阶段命下名——基本上是按照D3D10/11的命名结构——加上相应的缩写.我们将在旅程的最终部分看到他们,但是还…
原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   还没那么快   在上一篇,讲述了渲染命令在被GPU处理前,经历的各种阶段.简而言之,比你想像的要复杂.接下来,我将讲述提过的命令处理器(command processor),最终都对command buffer做了哪些事情.啥?哪提过这个了——骗你的- -.这篇文章确实是第一次提到命令处理器,但是记住,所有command buffer都经过内存或系统内存来访问P…
原文:<A trip through the Graphics Pipeline 2011> 翻译:往昔之剑   转载请注明出处   你可以找到很多PC图形栈的功能描述,但是通常却不明所以然.我会尽量避开硬件部分的种种细节,来填补这些空白知识点.我打算讲述 一下在Windows上运行d3d9/10/11的dx11接口的硬件,因为发生在PC上的堆栈细节我再熟悉不过了,而不是API之类的细节.这第一部分,会讲很多我们实际在GPU上执行的本地指令.   应用程序 这是你的代码部分,还包括各种bug,…
http://en.wikipedia.org/wiki/Comparison_of_Intel_graphics_processing_units Comparison of Intel graphics processing units From Wikipedia, the free encyclopedia     This page contains information about Intel's GPUs and motherboard graphics chipsets in…