Directx中HLSL效果(Effect)的D3DXHANDLE

由于Directx的效果(ID3DXEffect)中已经封入了常量表,因此只要设置D3DXHANDLE就可以了。

不过偶然下看到不设置D3DXHANDLE,直接写变量名的做法居然也可以通过。

例:

标准做法:

mhWVP = mFX->GetParameterByName(0, "gWVP");

mFX->SetMatrix(mhWVP, &(mWorld*mView*mProj));

直接写HLSL侧全局变量做法:

g_pEffect->SetMatrix( "gWVP", &(mWorld*mView*mProj));

后来查了DXSDK文档,发现在工程里的预编译项如果没有D3DXFX_LARGEADDRESS_HANDLE

就可以使用传参数名/传HANDLE两种方法。

官方文档地址:

https://docs.microsoft.com/zh-cn/windows/desktop/direct3d9/d3dxfx

 

虽然初始化一堆D3DXHANDLE比较麻烦,不过官方也注明了不使用D3DXHANDLE会比较慢。

所以还是老老实实用D3DXHANDLE比较好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 《DirectX 3D HLSL高级实例精讲源码》是一本讲解DirectX 3D HLSL编程的书籍,通过深入研究DirectX 3D编程技术,教授读者如何高效地编写图形渲染引擎。本书除了详细介绍DirectX 3DHLSL的基础知识以外,还重点讲解了一些高级实例。 在书,作者以源码的形式给出了完整的示例代码,通过这些代码,读者可以一步步了解如何实现各种图形渲染效果。这些示例代码包括了各种常见的图形渲染技术,如阴影、光照、镜面反射、法线贴图等。通过学习这些示例代码,读者可以掌握如何在DirectX 3D高效地实现这些效果。 此外,书还介绍了一些更加复杂和高级的图形渲染技术。例如,作者详细阐述了如何实现全局光照和实时全局光照,以及如何使用HDR和bloom效果,使得渲染出的图像更加真实和逼真。 除了示例代码之外,书还提供了详细的解析和讲解。作者逐步分析每一部分代码的实现原理和技巧,并给出了相应的图形效果演示。读者不仅可以通过运行代码来亲自体验这些效果,还可以深入了解其背后的原理和思想。 总而言之,《DirectX 3D HLSL高级实例精讲源码》是一本高质量、实用性强的编程教材。通过学习本书,读者可以系统地学习和掌握DirectX 3DHLSL编程技术,并能够运用这些技术实现各种图形渲染效果。无论是对于初学者还是有一定经验的开发者来说,这本书都是一本值得推荐的必备读物。 ### 回答2: DirectX 3D HLSL高级实例精讲源码是指在学习和理解DirectX 3D图形编程的高级技术和概念时,使用的源代码示例。这些源码示例是为了帮助开发者更深入地了解和掌握DirectX 3D HLSL编程相关的知识而开发的。 源码示例通常包含不同场景下的图形渲染代码,如基础渲染管线配置、光照和材质、阴影效果、几何绘制、纹理和贴图等。通过阅读和分析这些源码示例,开发者可以学习如何使用DirectX 3D提供的HLSL语言编写着色器代码,以及如何在渲染管线实现各种高级效果。 例如,在学习光照和材质时,源码示例可能包含了用于计算不同光照类型(如环境光、点光源、平行光等)的着色器代码,以及用于设置和应用不同材质属性(如漫反射、镜面反射、折射等)的代码。通过分析这些示例代码,开发者可以了解如何在HLSL实现光照效果,并将其应用到自己的项目。 源码示例还可能包含用于实现各种高级效果的代码,例如阴影效果的代码示例可能涉及到使用阴影贴图和深度纹理进行渲染的技术。开发者可以通过分析这些示例代码了解如何在HLSL实现阴影效果,并将其应用到自己的项目。 总之,DirectX 3D HLSL高级实例精讲源码提供了一系列示例代码,通过阅读和分析这些代码,开发者可以更好地理解和掌握DirectX 3D HLSL编程的高级技术和概念。 ### 回答3: DirectX 3D High-Level Shading Language (HLSL) 是一种用于编写图形着色器的编程语言,常用于开发游戏和图形应用程序。HLSL 高级实例精讲涉及了一些更高级的概念和技术,有助于开发人员更好地理解和使用HLSL。 在HLSL高级实例精讲,我们将深入学习和讨论一些在图形编程广泛应用的技术。我们将看到如何使用HLSL编写更复杂的着色器,包括几何着色器、像素着色器、计算着色器等。我们还将学习如何利用着色器的流程控制、条件语句和循环语句来实现更灵活和高效的图形渲染。 在高级实例精讲,我们还将研究一些更高级的图形效果和技术,如法线贴图、环境光遮蔽(AO)、反射(Reflection)、折射(Refraction)等。我们将学习如何使用HLSL代码来实现这些效果,并深入理解这些技术的原理和实现方式。 除了深入研究HLSL技术外,高级实例精讲还包括大量的源码示例和案例研究。这些实例将帮助开发人员更好地理解和应用所学的知识。通过分析这些源码示例,我们将学习一些优化技巧和最佳实践,以实现更高效、更流畅的图形渲染。 总之,DirectX 3D HLSL高级实例精讲涵盖了许多高级的图形编程技术和效果,并提供了大量的源码示例和案例研究。通过学习这些内容,开发人员可以更全面地掌握HLSL技术,提高游戏和图形应用程序的质量和性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值