我爱Aspx >> Asp.Net >> Alpha 闪烁效果2000年9月
下载本文的源代码 (521 KB)
欢迎阅读 Driving DirectX。这个月,我将通过开发一个使用 alpha 的 Direct3D 屏幕保护程序继续对 alpha 混色进行探索。
图 1. MSDNSparkles 屏幕快照
图 1 显示了该示例的一个屏幕快照;要想真正欣赏这些图像,您必须花上一定的时间来观察屏幕保护程序的形态变化。
根据 Direct3D "ScreenSaver" 示例,MSDNSparkles 屏幕保护程序将一个粒子系统与一些随机的戏法结合起来;如果这种方式与 alpha 混色相结合,就会产生梦幻般的图像。这是一个使用 ONE:ONE 操作符进行加色的示例,这会产生一些确实有趣的发光效果。
在本专栏中,我将简要概括 Direct3D 屏幕保护示例的框架,然后深入介绍 MSDNSparkles 实现其戏法的细节。我不会涉及编写 Win32 屏幕保护程序的细节,但您可以在 MSDN 上搜索讨论这一主题的文章。
引言 Direct3D 屏幕保护程序的框架由两部分组成:骨架和应用程序提供的函数,这些函数由每个屏幕保护程序覆盖。图 2 显示了 SDK 的屏幕保护程序样本工程视图。Screensaver.cpp 提供了一个使 D3DFrame 屏幕保护程序能够运行的骨架,如 d3dapp.cpp,而 d3dapp.cpp 反过来又提供了 D3DFrame 应用程序的骨架。只要提供覆盖的函数就可以得到一个屏幕保护程序。请记住,如果要对屏幕保护程序进行测试,则需要使用一个命令行参数 –s 从 Visual C++ 中将其启动。
图 2. Direct3D 屏幕保护程序样本项目视图
该骨架使用了一些类似于那些 D3DFrame 应用程序用于执行初始化、关闭和着色的函数。这些函数的原型—Initialize3DEnvironment 、Cleanup3DEnvironment 和 Render3DEnvironment — 如下所示。
//-------------------------------------------------------------------------- // 局部函数原型 //-------------------------------------------------------------------------- HRESULT Initialize3DEnvironment( HWND ); HRESULT Render3DEnvironment( HWND ); VOID Cleanup3DEnvironment( HWND );
Ҷƪл˵?
使用 ASP+ DataGrid 控件来创建主..[05-05]
使用 ASP+ DataGrid 控件来创建主..[05-05]
手册中关于怎样使用TQuery 的误导[05-05]
从HTML到XML[05-05]
怎样黑进Microsoft:循序渐进指南[05-05]
如何区别文本是BIG5还是GB?[05-05]
CIH病毒原理的应用——物理内存的..[05-05]
用Linux+IPChains代替Windows+Wi..[05-05]
在Linux下使用ISDN拨号上网[05-05]
ImageXye:让VC图象显示比VB更好用[05-05]