`
daiyuanyang
  • 浏览: 21722 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Render Target概念

 
阅读更多

 

渲染目标是一个缓冲,显卡通过这个缓冲使用一个Effect类绘制场景的像素。

默认的渲染目标叫做后备缓冲- 物理上就是包含下一帧要绘制的信息的一块显存。你可以使用RenderTarget2D类创建另一个渲染目标,在显存中保留一块新区域用于绘制。大多数游戏在后备缓冲之外将大量的内容绘制到其他渲染目标内("offscreen"),然后编译这些不同的图像元素,将它们组合起来构成最终的后备缓冲。

一个渲染目标具有高和宽。后备缓冲的高和宽就是游戏的最终分辨率(而在Xbox 360中最终结果要进行缩放匹配用户的屏幕)。而一个offscreen渲染目标无需和后背缓冲有相同大小的高和宽,最终图像的小部分可以绘制到一个小渲染目标中,然后将它复制到另一个渲染目标。渲染目标还有一个surface格式,表明每个像素分配到多少bits和它们如何分割成红,绿,蓝,alpha通道。例如,SurfaceFormat.Bgr32给每个像素分配32bits:每个颜色通道8 bits ,alpha通道8 bits。渲染目标还可以对所有绘制在其中的图像施加反锯齿(antialiasing)。

要使用渲染目标,需要创建一个指定高、宽或其他选项的RenderTarget2D对象。然后调用GraphicsDevice.SetRenderTarget将这个渲染目标作为当前渲染目标。从这一步开始,任何对Draw的调用会绘制到这个渲染目标。当结束渲染目标后,调用 GraphicsDevice.SetRenderTarget切换到一个新的渲染目标(或设置为null切换到后备缓冲)。 然后你就可以在任何时候调用RenderTarget2D.GetTexture获取渲染目标的内容进行后继处理。

;渲染目标可以和depth-stencil缓冲结合起来使用。如果你设置一个新的渲染目标,这个渲染目标会使用一个已存在的depth-stencil缓冲。如果新渲染目标有一个不同于depth-stencil缓冲的multisampling设置,或更大的宽和高,你就需要一个新的depth-stencil缓冲匹配这种情况。你还需要在depth-stencil缓冲中使用一个匹配渲染目标表面格式的深度格式。有时你可以同时渲染超过一个以上的渲染目标。你的图形设备支持的渲染目标的数量可以从MaxSimultaneousRenderTargets属性获得。使用多个渲染目标有很多变量,更多的信息可见Render Targets

 

分享到:
评论

相关推荐

    render to texture 事例代码

    2. **创建渲染目标视图**:纹理资源创建后,你需要创建一个渲染目标视图(RenderTargetView)。RTV是GPU访问纹理的一种方式,它告诉GPU你要将渲染结果写入哪个纹理。通过设置RTV,你可以指定渲染过程中的输出位置。 ...

    d3d11 Render To Texture, RTT

    2. **创建渲染目标视图(RenderTargetView, RTV)**:有了目标纹理后,我们需要创建一个RTV。RTV是Direct3D中的一个特殊视图,它指定了渲染引擎应该将像素数据写入哪个纹理。通过绑定RTV到渲染管线的输出合并阶段...

    D3D11_RenderTo2DTexture

    这个纹理需要有相应的视图(ID3D11RenderTargetView)以便于在渲染管线中作为目标。 2. **设置渲染目标**:在渲染帧开始时,使用`ID3D11DeviceContext::OMSetRenderTargets`函数将刚才创建的纹理视图设置为渲染目标...

    Silverlight Composition target game loop

    在"Composition target game loop"中,我们不再手动控制每一帧的绘制,而是让系统自动调用Render事件,这样可以保证游戏的帧率与显示器刷新率同步,提供流畅的游戏体验。 以下是一个基本的"Composition target game...

    BB_bible.pdf

    RenderTargetView(简称RTView)是一种在图形编程中广泛使用的概念。它定义了如何将渲染结果输出到特定的缓冲区或纹理。RTView可以被理解为一个目标,所有的绘制操作都将最终绘制到这个目标上。在这个文档中,重点...

    Direct3D Tutorial Win32 Sample

    5. **渲染目标视图(RenderTargetView)**:这是3D场景渲染的目标,将像素数据存储到帧缓冲中。 6. **深度/模板缓冲(DepthStencilBuffer)**:用于实现3D空间中的深度测试和遮挡消除,确保正确渲染物体的前后关系...

    lithtml一个适用于JavaScript的高效富有表现力可扩展的HTML模板库

    在实际使用中,lit-html提供了一些核心概念和函数,如`html`标签函数用于创建模板,`render`函数负责将模板渲染到DOM中,以及`templateResult`和`templateLiteral`等数据类型来处理模板的动态行为。例如: ```...

    烟花效果 JS+HTML+类库代码

    #### 概述 ...对于初学者来说,这是一个非常好的学习案例,能够帮助他们理解Canvas绘图机制以及面向对象编程的基本概念。对于有经验的开发者而言,该项目也为创建更复杂的Web动画提供了基础框架和灵感。

    Unity用C#脚本打开相机并渲染到平面上

    首先,创建一个新的Render Texture资源,然后将其分配给新相机的`targetTexture`属性: ```csharp void Start() { ... RenderTexture rt = new RenderTexture(1024, 1024, 24); newCamera.targetTexture = rt; /...

    JQuery中的MCRV框架

    本文将深入探讨MCRV框架的核心概念和在jQuery中的应用。 **一、Model(模型)** 在MCRV框架中,Model是数据和业务逻辑的载体。它负责存储和管理应用中的数据,同时处理与数据相关的业务规则。在jQuery中,可以创建...

    详细分析React 表单与事件

    React强调组件化和状态管理,这使得处理表单数据变得更为灵活和可控。在本文中,我们将深入探讨React中的表单与事件处理。 ...例如,`<input>`、`<textarea>`和`...理解并熟练掌握这些概念是成为React开发者的必备技能。

    DirectX 3D 环境的搭建

    在代码中,你会遇到关键的概念,如设备(Device)、上下文(Device Context)、交换链(Swap Chain)、顶点缓冲区(Vertex Buffer)、索引缓冲区(Index Buffer)和渲染目标视图(Render Target View)。理解这些...

    DX基本结构基础着色器语言

    9. **渲染目标(Render Target)**:允许开发者将渲染结果存储到纹理或其他表面,实现离屏渲染和后期处理。 10. **DirectX Math库**:提供了一组高效且优化过的数学函数,用于处理3D向量、矩阵运算,是编写图形代码...

    Direct3D9初级教程

    - **渲染目标(Render Target)**:学习如何设置渲染目标,可以将渲染结果定向到屏幕、纹理或其他表面。 2. **3D几何与坐标系统**: - **顶点结构(Vertex Structure)**:理解Direct3D9中定义的顶点结构,包括位置、...

    4.1准备工作1

    渲染目标(Render Target)是Direct3D中接收绘制结果的表面,它可以是屏幕,也可以是内存中的纹理。视口(Viewport)定义了渲染目标上的可视区域,包括X和Y坐标、宽度、高度和深度范围,它控制了场景在渲染目标上的...

    gaoshepao.rar_ gaoshepao_c语言射击游戏_gaoshep_gaoshepao_用c语言编写射击小

    render_game(); } ``` 接着,游戏中的物理运动,如目标的移动,可以通过时间和速度计算位置变化。C语言中的数学运算和数组可用来存储和更新对象的位置信息。例如,目标的位置可以用两个变量表示,每次循环中根据...

    Introduction to 3D Game Programming with DirectX9.0c A Shader Approach

    首先,书中的内容可能会涵盖Direct3D的初始化和设置,包括如何创建设备(device)、如何配置渲染表面(render target surface)和深度/模板缓冲(depth/stencil buffer)等基础概念。 接下来,学习者可能会了解到...

    水波特效(Shader)实现

    5. 渲染目标(Render Target):使用多个渲染目标可以实现复杂的后期处理效果,比如将不同阶段的波纹效果组合在一起,以增加深度感和复杂性。 总的来说,"水波特效(Shader)实现"项目展示了如何通过DirectX 9.0c和...

    unity開攝影機

    - 渲染目标(Render Target):可以是屏幕、纹理或者渲染到纹理(Render To Texture),用于实现多重渲染或屏幕外渲染效果。 - 剪裁平面(Clipping Planes):近剪裁面和远剪裁面定义了相机可视距离。 - 渲染路径...

    texture&blending

    这可以通过创建一个渲染目标视图(Render Target View)并将其设置为backbuffer来实现,然后对这个渲染目标进行读写操作。 在压缩包中的"test3"可能是一个示例程序或代码文件,用于演示如何在DX中执行上述的纹理...

Global site tag (gtag.js) - Google Analytics