博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个更好的Post process结构,三角形代替四边形。
阅读量:2440 次
发布时间:2019-05-10

本文共 1030 字,大约阅读时间需要 3 分钟。

三角形比四边形有着更好的性能,所以利用三角形代替四边形作为post process的框架,下面是细节:

C++ 代码:

// Null VB, IBpD3dContext->IASetVertexBuffers( 0, 0, NULL, NULL, NULL );pD3dContext->IASetIndexBuffer( NULL, (DXGI_FORMAT)0, 0 );pD3dContext->IASetInputLayout( NULL );// Set ShaderspD3dContext->VSSetShader( g_pFullScreenVs, NULL, 0 );pD3dContext->PSSetShader( ... );pD3dContext->PSSetShaderResources( ... );pD3dContext->IASetPrimitiveTopology( D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST );// Render 3 vertices for the trianglepD3dContext->Draw(3, 0);

HLSL 代码:

VSOutput VSFullScreen(uint id:SV_VERTEXID){    VSOutput output;    // generate clip space position    output.pos.x = (float)(id/2)*4.0 -1.0;    output.pos.y = (float)(id%2)*4.0 -1.0;    output.pos.z = 0.0;    output.pos.w = 1.0;    // texture coordinates    output.tex.x = (float)(id/2)*2.0;    output.tex.y = 1.0 - (float)(id%2)*2.0;    // color    output.color = float4(1,1,1,1);        return output;}

对于GCN架构,可以提高10%左右的性能,具体分析见下文:

http://michaldrobot.com/2014/04/01/gcn-execution-patterns-in-full-screen-passes/

转载地址:http://uhwqb.baihongyu.com/

你可能感兴趣的文章
unix下编写socket程序的一般步骤(转)
查看>>
共享软件中注册部分的简单实现(转)
查看>>
RedHat Linux 9下所有权和许可权限(转)
查看>>
C++程序设计从零开始之语句(转)
查看>>
利用Apache+PHP3+MySQL建立数据库驱动的动态网站(转)
查看>>
C#中实现DataGrid双向排序(转)
查看>>
利用C语言小程序来解决大问题(转)
查看>>
简单方法在C#中取得汉字的拼音的首字母(转)
查看>>
.NET开发之中的17种正则表达式小结(转)
查看>>
gcc常用的编译选项对代码的影响(转)
查看>>
编程秘籍:使C语言高效的四大绝招(转)
查看>>
配置XDM--一种Linux的图形登录界面(转)
查看>>
计算机加锁 把U盘变成打开电脑的钥匙(转)
查看>>
C#中使用反射的使用实现和性能分析(转)
查看>>
在C#中利用DirectX实现声音播放(转)
查看>>
安全攻略:WinRAR自制开机密码程序(转)
查看>>
C#开发的两个基本编程原则的深入讨论(转)
查看>>
浅议C语言中灵魂数组和指针的互操作(转)
查看>>
中科红旗联手日韩企业 80万美元建Linux公司(转)
查看>>
C++之父Bjarne谈C++在2005年(转)
查看>>