摘要: Chapter 1.11. 每个C++程序都必须有且只能有一个main函数,main函数的返回类型必须是int。操作系统通过调用main函数来运行C++程序。2. 一个函数的定义包含四部分:返回类型、函数名、形参列表以及函数体。3. 当return语句包含一个值时,此返回值的类型必须与函数的返回类型... 阅读全文
posted @ 2014-11-02 19:54 EnigmaJJ 阅读(1135) 评论(2) 推荐(1) 编辑
摘要: 用了3天时间,将DShow加入到了游戏中,记录下心得,方便要使用的童鞋以及以后的自己查看。1.VideoMixingRenderer9,内部使用Direct3D9,需要WindowsXP或更高的操作系统。游戏用户基本100%满足这个条件,因此我选择它作为过滤器。2.VideoMixingRender... 阅读全文
posted @ 2014-10-23 08:52 EnigmaJJ 阅读(520) 评论(0) 推荐(0) 编辑
摘要: DirectShow, as you might have guessed, is a COM based multimedia framework that makes the task of capturing, playing back, and manipulating media stre... 阅读全文
posted @ 2014-10-18 21:09 EnigmaJJ 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 在3D图形计算中,deferred shading是一个基于屏幕空间的着色技术。之所以被称为deferred shading,是因为我们将场景的光照计算与渲染"deferred"到第二个pass。在第一个pass中,我们会将所有需要的数据(例如diffuse,normals,materials)渲染... 阅读全文
posted @ 2014-06-22 21:07 EnigmaJJ 阅读(1058) 评论(0) 推荐(3) 编辑
摘要: 在开发D3D应用程序时,我们会使用Debug Layer来调试应用程序,以确保我们的程序在最终发布时没有warnings和errors。不过最近在开发应用程序时遇到了这样的问题,就是我把多个网格模型的顶点数据放在一个vertex buffer中,与此同时也把它们的索引数据放在一个index buff... 阅读全文
posted @ 2014-05-29 21:12 EnigmaJJ 阅读(1523) 评论(0) 推荐(1) 编辑
摘要: 一般在光照模型中,ambient light的计算方法为:A = l * m,其中l表示表面接收到的来自光源的ambient light的总量,而m表示表面接收到ambient light后,反射和吸收的量。出于性能考虑,在计算光照时,我们是不考虑那些从场景中其他物体反弹过来的光的,因为通常我们认为... 阅读全文
posted @ 2014-05-26 20:48 EnigmaJJ 阅读(2972) 评论(0) 推荐(0) 编辑
摘要: 在使用D3D开发游戏的过程中,很多情况下都会用到depth buffer来完成特定的效果,比如DOF,Shadows,SSAO等等。在这些情况下我们就可能需要预览depth buffer来确定它是正确的,以免导致后续运算渲染出错。此时有一个问题就出现了,因为原始的depth buffer中保存的de... 阅读全文
posted @ 2014-05-11 16:21 EnigmaJJ 阅读(1088) 评论(0) 推荐(0) 编辑
摘要: 原文地址:http://www.ogre3d.org/tikiwiki/tiki-index.php?page=Basic+Tutorial+6&structure=Tutorials1. Ogre的基本生命周期如下:(1) 创建Root对象(2) 定义Ogre将要使用的资源(3) 选择并且设置渲染系统(就是DirectX, OpenGL等等)(4) 创建渲染窗口(5) 初始化将要使用的资源(6) 使用资源创建一个场景(7) 设置第三方库和插件(8) 创建任意数量的帧监听(frame listeners)(9) 启动渲染循环Note:第一步到第四步应该按顺序执行。第五步和第六步如果你喜 阅读全文
posted @ 2013-07-09 09:38 EnigmaJJ 阅读(400) 评论(1) 推荐(0) 编辑
摘要: 本文的编译环境为Windows7_SP1 + VS2010_SP1 :)当编译Ogre1.8.1的源码时,会出现大量的warning,如图:虽然没有太大影响,但是程序员都希望自己的程序是没有warning的,同时如果存在大量warning,那么当自己编写代码出现warning时,也难以发现。其实去除方法很简单,只需要使用#pragma指令就可以了:1 #pragma warning( push )2 #pragma warning( disable: 4251 )3 #pragma warning( disable: 4275 )4 #pragma warning( push )5 #prag 阅读全文
posted @ 2013-07-04 16:05 EnigmaJJ 阅读(498) 评论(0) 推荐(0) 编辑
摘要: 本文的编译环境为Windows7_SP1 + VS2010_SP1 + CMake2.8.11 :)资源下载1. 下载Ogre1.8.1的源代码,下载链接地址:http://www.ogre3d.org/download/source2. 下载依赖库的源代码,下载链接地址:http://www.ogre3d.org/download/source,如图:编译源代码1. 解压提取下载的Ogre1.8.1源代码,这里我存放到本地目录"E:\Learn\ogre_src_v1-8-1"2. 解压下载的依赖库源代码,放到目录"E:\Learn\ogre_src_v1-8- 阅读全文
posted @ 2013-07-03 13:57 EnigmaJJ 阅读(1793) 评论(1) 推荐(0) 编辑