Azure Product
浏览模式: 普通 | 列表
分类: DirectX | 1

优化3D图形渲染通道负载

[ 2008-02-26 13:19:47 | 作者: Admin ]
文章来源:CAD世界网

一般来说, 定位渲染通道瓶颈的方法就是改变渲染通道每个步骤的工作量, 如果吞吐量也改变了, 那个步骤就是瓶颈.。找到了瓶颈就要想办法消除瓶颈, 可以减少该步骤的工作量, 增加其他步骤的工作量。

   一般在光栅化之前的瓶颈称作”transform bound”, 三角形设置处理后的瓶颈称作”fill bound”定位瓶颈的办法:
  • 1.改变帧缓冲或者渲染目标(Render Target)的颜色深度(16 到 32 位), 如果帧速改变了, 那么瓶颈应该在帧缓冲(RenderTarget)的填充率上。

  • 2.否则试试改变贴图大小和贴图过滤设置, 如果帧速变了,那么瓶颈应该是在贴图这里。

  • 3.否则改变分辨率.如果帧速改变了, 那么改变一下pixel shader的指令数量, 如果帧速变了, 那么瓶颈应该就是pixel shader. 否则瓶颈就在光栅化过程中。
...

阅读全文...

D3D中使用反射贴图

[ 2007-04-07 10:00:53 | 作者: Admin ]
下面的代码段,演示了D3D中如何实现反射贴图。
/// tu = 0.5*x + 0.5
/// tv = -0.5*y + 0.5
D3DMATRIXA16 mat;
mat._11 = 0.25f; mat._12 = 0.00f; mat._13 = 0.00f; mat._14 = 0.00f;
mat._21 = 0.00f; mat._22 = -0.25f; mat._23 = 0.00f; mat._24 = 0.00f;
mat._31 = 0.00f; mat._32 = 0.00f; mat._33 = 1.00f; mat._34 = 0.00f;
mat._41 = 0.50f; mat._42 = 0.50f; mat._43 = 0.00f; mat._44 = 1.00f;

g_pd3dDevice->SetTransform(D3DTS_TEXTURE0, &mat);
...

阅读全文...

一个D3D的基本框架(BASECODE)

[ 2005-06-17 21:56:51 | 作者: Admin ]
Direct3D Basecode Created By Ronny Andr

记住在LINK中加入 d3dx9.lib d3d9.lib 两个库
/*
 *    Direct3D Basecode Created By Ronny Andr?Reierstad
 *    Window Code Originaly Created By Jeff Molofee 2000
 *    A HUGE Thanks To Fredric Echols For Cleaning Up
 *    And Optimizing This Code, Making It More Flexible!
 *    If You Want More DirectX 3D Source Code
 *    Visit
...

阅读全文...
1
ħ˽ ħ˽ : ϲ ϲվ ϲʿ ϲʿ ϲʿ ϲվ ϲ ϲվ ϲ ϲ ͸۾ ˽ ѾѾַ document.write("");