| HitmaeN's profileGameDevErBlogListsNetwork | Help |
|
5/21/2007 调用动态加载的DLL中的重载函数看书时发现书中没有这方面的讲解,于是自己动手试验了一下,不知道这样做是否“正点”
,欢迎讨论。关于DLL最基本的知识就不提了,开门见山地讲吧! 现有动态链接库DLL_Sample.dll DLL_Sample.h: #ifdef TEST_API # define TEST_API _declspec(dllexport) #else # define TEST_API _declspec(dllimport) #endif![]() TEST_API int fuc(int a); TEST_API int fuc(int a, int b); TEST_API int fuc(int a, int b, int c);DLL_Sample.cpp: #define TEST_API
#include "DLL_Sample.h" TEST_API int fuc(int a) { return a; } TEST_API int fuc(int a, int b) { return a + b; } TEST_API int fuc(int a, int b, int c) { return a + b + c; }
LIBRARY DLL_Sample EXPORTS fuc1=?fuc@@YAHH@Z fuc2=?fuc@@YAHHH@Z fuc3=?fuc@@YAHHHH@Z 然后写动态调用的示例代码(这里调用了第二个版本的fuc函数): ![]() HINSTANCE hInst = LoadLibrary("Dll_Sample.dll"); typedef int (*MyProc)(int a, int b); MyProc Fuc = (MyProc)GetProcAddress(hInst, "fuc2"); if (!Fuc) { MessageBox ("Fuc2 is null!"); return; } CString str; str.Format ("a + b = %d", Fuc(2, 3) ); MessageBox(str); FreeLibrary (hInst); ![]() ![]() 结果输出“a + b = 5” 4/25/2007 基础知识很重要应该先把Directx编程基础弄牢靠,OGRE终归是一个高层的东西,但是已经掌握的东西也不是没有用处,就像当年毫无目的地学了一些与编程无关的东西,后来发现这些已经为学习3D技术铺平了道路,在学了一点OGRE的皮毛之后,在编程的时候喜欢居高临下的想问题,写出来的东西也是设计为先,好处就不用说了。是知识就要学一点,总会有点用处,没有先前C#的学习,现在学MFC也不会这么顺利,融会贯通才能成就大家。
一直以来都是这种螺旋式的学习,虽然很慢但是视野开阔,好比爬山,别人喜欢直线爬到山顶(一种技术一种编程语言),而我则喜欢一圈一圈绕上山顶,沿途包揽风景,大事晚成矣!
在畏惧中前进!很想从事游戏开发,并非只是因为喜欢玩游戏,而是,我毕生所学如果想要发挥到极致,走这个方向比较有前途,但愿能满足心愿。如果未能实现,我也不必灰心丧气,因为那个门槛实在很高很高。
如果问我本科期间有什么遗憾,我的答案是,没有可以安心学习的机房(不单单是一个机房,还需要项目的支持),没有能够帮助我指明方向的导师(反而他们那种自大让我非常厌恶和失望),没有志同道合的同学(或者说我是个异类),没有舒适的大床让我能保证睡眠质量(夜深人静的时候是我最痛苦的时候)。然而现在一切条件都有了,只是年华老去!
可怜我数学不好,现在在看向量数学,搞图形学的就得肯这东西,头疼不已,没办法。好在有OGRE,OGRE这东西真好,是个相当不错的教材,下一步我的程序里可以借鉴一下。
好久也没有更新,看着实在凄凉,就乱写一气,这应该是一个技术博客,可惜本人水平实在有限,也许以后会丰富起来,但愿如此!但愿如此! 3/3/2007 3D MathOGRE
Other LanguagesThe main OGRE site and this Wiki are English only for simplicity, but there are several translation sites around the web:
Recommended ReadingExternal Tutorials
Artificial IntelligenceAI Links repositories
SDKs
General and Specific Architecture Articles
C++ / STL
GamesGame Developer SitesHardwareAti (papers, tools, source) (MUST READ) Nvidia (papers, tools, source) (MUST READ) Game/3D Conferences
MainStream
Game Design PatternsGame DevelopmentPublisher-Developer relation
NetworkArticles
SdkDebuggingintro articles Visibility
TerrainPhysicsArticles
SDKs2/26/2007 啊!我的眼睛!今天眼睛终于恢复正常了,这次迷眼睛折腾苦我了,一粒小小的灰花了我40块,好值钱的灰啊!不看又不行,只好去医院! 看病贵看病难真是个民生大问题啊,这次看病的流程: 2楼眼科挂号7块->5楼小护士告诉有两种检查费选择(5块是看迷眼睛的/16块是看病变的)->2楼交了5块->5楼大夫看说是一粒灰让交10块处置费->2楼交10块->5楼把灰清除(医院花费22块)->买消炎眼药水18块,楼上楼下跑累死人啊,难道没有更好的方法么? 每次从医院出来都会对生命有更深刻的认识:人活这么大真TMD不容易啊! VS 插件 VA今天在看OGRE代码的时候发现VS的智能感知不起作用了,很是影响学习代码。
上网搜了一下,按照别人说的,删除了几个文件又重新打开,结果还是不行,然后知道有个叫Visual Assist(VA)的VS插件。试了一下,问题解决了,这个插件真的很好用,比VS自己的智能感知更智能更强大,是程序员的得力助手。 虽然问题的原因没有找到,它的很多特性我还没依依弄清楚,但是不管怎样,又发现了一个得力工具,值得庆贺! 2/25/2007 虚幻引擎 (Unreal engine)Hitmaen译 source:http://en.wikipedia.org/wiki/Unreal_Engine
|
|
|
为了能加快他们自己游戏的开发,许多其他的公司得到了使用Unreal engine的许可。 这些包括 Star Trek: Deep Space Nine: The Fallen 和 Ion Storm Inc.的 Deus Ex。新版本的引擎正在用来开发PC游戏例如 Running With Scissors, Inc.的 Postal², 3D Realms' Duke Nukem Forever,U.S. Army的America's Army,还有 Ion Storm的Deus Ex: Invisible War 。
Unreal engine 的各个版本都适合 IBM PC (Microsoft Windows, GNU/Linux),Apple Macintosh (Mac OS, Mac OS X) 和其他平台。下面是一个完整的video games发布清单:
Builds 1-226: 最初的Unreal engine公认的开始于Unreal,虽然Legend Entertainment 和 MicroProse 出现的要早一些。 226f 是Unreal的最终补丁。Unreal engine 的特性没有出现在当时的其他引擎 ,比如 动态光照(Dynamic Lighting), Detail Textures 等其它一些特性。
Builds 300-436:原有Build的增强版。 The codebase was forked and the v300 并且增加到目前的版本436。主要对渲染器进行了加强, 以能够彻底地支持Direct3D,最终整合成了Warren Marshall的新引擎UnrealEd 2。另外,这个引擎的PS2和Dreamcast 版本在这一时期首次登台亮相,还有对 骨骼动画(keletal animation) 的支持也整合进来了。
Builds 500-2227: 第二代Unreal engine的builds开始于500,第一次得到许可看到他们是在600以后, 随着America's Army的发布,build 927这个可用的版本才公布。当 Epic 完成了UT2003, build号也跳到了2000+.
重大的技术改进包括对渲染和地图编辑器的检验: 加强 lighting & shading,hardware vertex & pixel shader 的支持, 改进了 texture compression,bump mapping 和 cube mapping, 一个新的 粒子系统(particle system),游戏环境中,smooth skinned geometry 提供了 animated characters 和 complex animated geometry, 面部动画(facial animation) 提供了(包括 lipsynced animation),支持大比例地图,BSP网眼(BSP meshes) 和地形的无缝混合, 支持硬件 transform and lighting,重写了对 PlayStation 2 的支持,以及对 GameCube 和 Xbox的支持,一个新的名叫"Karma"的物理引擎,等等。
这个引擎有时会被错误的叫作 "UT2003 engine", "U2 engine", "UT2 engine",或者类似。 Licensees sometimes refer to it as "Unreal Warfare(冲突)", 虽然"Unreal Warfare" 这个词最初的由来是含混和令人迷惑的。有一点,"Unreal Warfare"是Epic的一个工程的一个代码名,用来辨别这个自己都不清楚的工程是一个游戏还是一个引擎。Theories vary: 有人认为这仅仅是UT2004的代码名,其他人则相信它是Gears of War的原有代码名。尽管Epic 的代表声称最终的gametype名字还没有定下来。有关信息显示, Epic 将向 UT2007 里加入一个gametype,同时称作"Unreal Warfare" 和 "Conquest"
引擎的命名计划为 Unreal Engine N,或者是Unreal engine的N代。
Builds 2500-3369: Unreal Engine 2 的加强版本,优化了的渲染代码。渲染系统提供了对众多平台的优化支持,如 DirectX versions 7 / 8,OpenGL,甚至用Pixomatic (licensed separately)进行软件渲染。虽然2.5 没有广泛发挥DirectX 9的特性,但是它确实使用了DirectX 9 API ,从而开始有兴致增加DirectX 9.x 图形特性的历史。 Unreal Engine 2.5 还展现了新特性,multipass bump-mapping (normal map/bump map/specular map/diffuse map/gloss map/environment map/opacity map/mask map etc), per-pixel lighting 和 per-pixel shading,virtual displacement mapping , high dynamic range rendering , soft shadows 和其它DirectX 9或更高版本(如同OpenGL一样) 的图形特性。Unreal Engine 2.5 增加了对64-bit Windows 和 64-bit Linux的支持。还为Xbox 的内存管理系统进行了优化。
Builds 3500 或更高: Unreal Engine 3 合并支持DirectX 9 和下一代 APIs ,包括 XNA, DirectX 10 和 OpenGL 2.x。它放弃了 legacy support 来改善性能和获得在老一代 graphics processors上无法实现的视觉效果。Unreal Engine 3 将要使用NovodeX physics engine, 放弃了自主开发的在Unreal Engine 2.x里使用的“Karma” 物理引擎。 lighting 和shadowing得到了巨大的提升, 使用了实时per-pixel lighting 和 shadowing 技术,例如为人物应用的16x采样 shadow depth buffers ,令人激动的动态光照的stencil shadow volumes 场景和为静态光照交互预处理的 shadow-masks。 Unreal Engine 3 还支持shader models 2, 3 和 4。
Epic正在用UE3.0 制作Gears of War和Unreal Tournament 2007。但是,Epic 还要继续改进和扩展UE3 ,重写全部的控制台循环,所以重大的加强至少要等3年半(尽管UT2007 在4/4 2006发行)。Unreal Engine 3.5 提供DirectX 11/12 和 shader model 5 或者更高的技术支持。
Tim Sweeney 说 : 关于时间表, 我们会始终积极的开发 Unreal Engine 3 ,考虑到当今的这一代硬件——最终得等到 2009.
http://www.beyond3d.com/#news27836
Mark Rein (Epic Games的副总裁) August 18, 2005 透露公司在过去的两年里进行了有关Unreal Engine 4 的工作。这个引擎意在the coming generation之后的下一代控制台,as well as the PC. 到目前为止只有 Tim Sweeney一个人在进行此引擎工作,他是Epic的首席程序员(lead programmer) 。
|
|