各种显卡指标参数查询
[ 2010-05-25 18:25:32 | 作者: Admin ]
次世代游戏引擎光影制作简述
[ 2010-04-04 00:16:58 | 作者: Admin ]
一、游戏光影的范畴
实际游戏制作当中,狭义的灯光只是指程序实时根据灯光影响的顶点色和动态阴影,但实际应用当中,影响玩家整体感觉的光影效果,也就是广义上的光影效果包含的范围要更加广泛。
程序的即时光影,shader的定制固然对光影效果至关重要,美术制作的lightmap,normalmap,VertexColor乃至Glow都可以构成一般玩家认知上的灯光效果。
即是说,在游戏制作应该以游戏玩家的感觉为基准整体的设置光影的效果,而并非仅以技术手段作为分界,对于游戏制作来说,综合程序美术的多种表现手段,最终呈现给玩家的光影的感觉,才是游戏制作当中的灯光。
二、基本灯光系统介绍及使用方法
从画面渲染来说,无论一般网游还是次世代游戏,运算的规则构建是大体相似的,我们可以通过分析这个构架得出其中制作各种光影效果的可能性,下图是比较常规的各种图素经过如何的运算达成了最终画面的pipeline。
...
阅读全文...
实际游戏制作当中,狭义的灯光只是指程序实时根据灯光影响的顶点色和动态阴影,但实际应用当中,影响玩家整体感觉的光影效果,也就是广义上的光影效果包含的范围要更加广泛。
程序的即时光影,shader的定制固然对光影效果至关重要,美术制作的lightmap,normalmap,VertexColor乃至Glow都可以构成一般玩家认知上的灯光效果。
即是说,在游戏制作应该以游戏玩家的感觉为基准整体的设置光影的效果,而并非仅以技术手段作为分界,对于游戏制作来说,综合程序美术的多种表现手段,最终呈现给玩家的光影的感觉,才是游戏制作当中的灯光。
二、基本灯光系统介绍及使用方法
从画面渲染来说,无论一般网游还是次世代游戏,运算的规则构建是大体相似的,我们可以通过分析这个构架得出其中制作各种光影效果的可能性,下图是比较常规的各种图素经过如何的运算达成了最终画面的pipeline。
...
阅读全文...
NuMega Devpartner使用
[ 2010-03-29 11:58:43 | 作者: Admin ]
1 前言
我在本文中详细介绍了测试工具NuMega Devpartner(以下简称NuMega)的使用方法。
NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——BoundsChecker、TrueCoverage、TrueTime。BoundsChecker为代码检错工具,TrueCoverage为测试覆盖率统计工具,TrueTime为程序运行性能测试工具。
本文挡通过三章对NuMega三个子功能的使用方法进行了介绍,各部分之间内容独立。如果你想了解NuMega的各项功能,建议阅读本文挡全部内容,如果你只想了解NuMega提供的某一个子功能的相关信息,按目录查看相应的章节即可。
需要说明的一点是,本文挡中所介绍的测试工具NuMega,专指NuMega for Visual ...
阅读全文...
我在本文中详细介绍了测试工具NuMega Devpartner(以下简称NuMega)的使用方法。
NuMega是一个动态测试工具,主要应用于白盒测试。该工具的特点是学习简单、使用方便、功能有效。NuMega共有三个独立的子功能——BoundsChecker、TrueCoverage、TrueTime。BoundsChecker为代码检错工具,TrueCoverage为测试覆盖率统计工具,TrueTime为程序运行性能测试工具。
本文挡通过三章对NuMega三个子功能的使用方法进行了介绍,各部分之间内容独立。如果你想了解NuMega的各项功能,建议阅读本文挡全部内容,如果你只想了解NuMega提供的某一个子功能的相关信息,按目录查看相应的章节即可。
需要说明的一点是,本文挡中所介绍的测试工具NuMega,专指NuMega for Visual ...
阅读全文...
关于解决在多字节MFC程序时,界面不是XP风格的问题
[ 2010-01-27 12:06:23 | 作者: Admin ]
一直有这个问题困扰着我,今天我找到了一个解决方案。
在stdafx.h中 ...
阅读全文...
在stdafx.h中
#ifdef _UNICODE
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls'
#if defined _M_IX86
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")
#elif defined _M_IA64
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls'
阅读全文...
如果你发现WTL的事件处理函数无法写到CPP中去的时候,检查下时候未包含一下头文件:
在stdafx.h最后添加:
#include <atlframe.h>
在maindlg.cpp中添加:
#include "StdAfx.h"
#include "resource.h"
#include "aboutdlg.h"
#include "maindlg.h"
如果你发现DDX无法使用,看一看。
是否未包含 #include <atlddx.h>
然后看看是否没有继承于继承于
public CWinDataExchange<T>
www.azure.com.cn
在stdafx.h最后添加:
#include <atlframe.h>
在maindlg.cpp中添加:
#include "StdAfx.h"
#include "resource.h"
#include "aboutdlg.h"
#include "maindlg.h"
如果你发现DDX无法使用,看一看。
是否未包含 #include <atlddx.h>
然后看看是否没有继承于继承于
public CWinDataExchange<T>
www.azure.com.cn
全局环境光(Ambient Occlusion)加入地表阴影渲染,准备迈向更真实的光影
[ 2008-04-18 20:34:49 | 作者: Admin ]
经过几天的算法改进,终于将AO加入了阴影渲染,下一步就是和直射阴影结合,
产生更加真实的光影效果,届时我会写一篇文章讲解一个简化版本的Globel illuminate,
使它适合游戏地形的阴影生成。
下放几张AO效果的图来看看,嘿嘿
军营的战车
军营的帐篷战车
地形全貌
www.azure.com.cn
产生更加真实的光影效果,届时我会写一篇文章讲解一个简化版本的Globel illuminate,
使它适合游戏地形的阴影生成。
下放几张AO效果的图来看看,嘿嘿
军营的战车
军营的帐篷战车
地形全貌
www.azure.com.cn
自己用编辑器做的场景
[ 2008-02-22 16:06:22 | 作者: Admin ]
新的战场场景基本已经完成,只剩下一些逻辑的功能没有设置。
场景并不很复杂,保证7300GT能跑到平均45FPS以上。
下面是一些截图:
一条大河
闪电下的废墟
闪电下的寨门
寨门2
闪电划破长空
[img]uploads/200712/17_1...
阅读全文...
场景并不很复杂,保证7300GT能跑到平均45FPS以上。
下面是一些截图:
一条大河
闪电下的废墟
闪电下的寨门
寨门2
闪电划破长空
[img]uploads/200712/17_1...
阅读全文...
场景渲染在7300GT上卡的问题终于解决了
[ 2007-12-13 20:06:19 | 作者: Admin ]
很长时间以来,在我的机器上(7300GT的卡)上渲染场景总是莫名其妙的卡,且症状并不是均匀不停的卡,而是当移动摄像机镜头的时候,发生卡的现象。
我一直怀疑是OGRE八叉树中 walkOctree() 递归产生的问题。总是试着优化其代码却不见好转,我总是以为是CPU这边的问题,并总在CPU这边优化下功夫。
今天当我用nvperfHUD检测的时候, 我调整了一个最卡的方向,试着用其调试看看。我突然发现当我使用2X2的纹理代替场景中所有的纹理的时候,FPS突然从5一下在跳到了88,我突然意识到这是显存上的瓶颈 ,这是我才意识到了真正的问题,美术提交的场景,物件,地表的贴图统统用的是TGA格式,而没有用DDS的压缩格式(因为DDS格式在显存中是压缩储存的并实时展开的,将消耗更少的显存)
于是我从早上开始干了一天的体力活,将现有场景的所有纹理全部换...
阅读全文...
我一直怀疑是OGRE八叉树中 walkOctree() 递归产生的问题。总是试着优化其代码却不见好转,我总是以为是CPU这边的问题,并总在CPU这边优化下功夫。
今天当我用nvperfHUD检测的时候, 我调整了一个最卡的方向,试着用其调试看看。我突然发现当我使用2X2的纹理代替场景中所有的纹理的时候,FPS突然从5一下在跳到了88,我突然意识到这是显存上的瓶颈 ,这是我才意识到了真正的问题,美术提交的场景,物件,地表的贴图统统用的是TGA格式,而没有用DDS的压缩格式(因为DDS格式在显存中是压缩储存的并实时展开的,将消耗更少的显存)
于是我从早上开始干了一天的体力活,将现有场景的所有纹理全部换...
阅读全文...
其实做多液面并不是太难,主要是反射问题很难解决。
在这里每个液面都支持反射环境,只是可能反射的并不是很真实,
这里只是取巧的近似做了下反射和通常我们使用的RTT反射还是有所不同的。
效果图:
上图做了4块不同高度的水,
不同的颜色,
不同的波浪纹理。
且都反射周围的景象。
www.azure.com.cn
在这里每个液面都支持反射环境,只是可能反射的并不是很真实,
这里只是取巧的近似做了下反射和通常我们使用的RTT反射还是有所不同的。
效果图:
上图做了4块不同高度的水,
不同的颜色,
不同的波浪纹理。
且都反射周围的景象。
www.azure.com.cn






















