- 博客(16)
- 收藏
- 关注
原创 ShaderSimpler(6) : Parallax Mapping
源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip Parallax map通过简单的计算可以大幅提高per-pixel光照的效果。Parallax map的想法基于一个简单的事实,那就是当我们用一个多边形去表现一个凹凸不平的表面的时候,事实上随着视线的变化,看到的实际的texel并不是顶点uv坐标差值出来的那个结果
2007-01-29 11:50:00 6114 2
原创 ShaderSimpler(5) : Bump Mapping(Normal mapping)
源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip从贴图生成normal map normal map需要从一个颜色贴图对应的高度图生成。为了计算i,j点的normal,首先可以根据高度差计算出s,t方向的切向量: S(i,j) = T(i,j) = 其中a是一个缩放系数。normal可以由这两个切向量得出
2007-01-29 11:48:00 4524
原创 ShaderSimpler(4) : 环境映射
源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip Cube Map环境映射特别适合与曲面,实现也很简单--构造一个视点到顶点的向量,然后计算出相对与normal的反射向量,用此向量索引cube map贴图即可。 顺便比较了一下shpere环境映射的效果。Sphere环境映射的实现也很简单,把顶点法向量变换
2007-01-23 17:43:00 3650
原创 ShaderSimpler(3) : 卡通渲染
CSDN blog问题百出,图片插不进来,真让人郁闷!今天总算能连上google page了,继续上传shader simpler源码。 源码下载地址:http://yanonsoftware.googlepages.com/ShaderSimpler.zip 卡通渲染(cartoon render,cel-shading)主要包括两个效果: 1、把普通光照的平滑亮度变化
2007-01-17 11:12:00 4230
原创 D语言游戏编程(11):D语言基础之模板和混入(mixin)技术
D语言通过模板,很好的支持泛型编程。与C++的模板相比较,各有优略。总体上说,D语言的模板在很多方面还是很方便的。 D语言还支持模板的混入(mixin),简单的讲就是把模板实例化之后,将模板中的代码插入到当前的位置。这是一个非常方便的工具! 具体的,请看下面的演示代码。import std.stdio;void main()...{ tryTemplate();
2007-01-16 20:48:00 3772
原创 D语言游戏编程(10):D语言基础之函数和操作符重载
关于D语言的函数和操作符重载:1. 不需要声明虚函数,默认所有成员函数都为虚函数,编译器会自动优化;2. 函数参数支持in, out, inout等修饰符;3. 支持函数指针,不支持类成员函数指针,但是支持更方便的方式--委托(delegate)。4. 支持丰富的操作符重载 下面是一些特性的演示代码。import std.stdio;void main()...{ tryFuncti
2007-01-15 18:14:00 1503
原创 D语言游戏编程(9):D语言基础之interface和enum
D语言的interface用来定义一个方法的集合,这些方法都必须有派生类实现;接口可以多继承。另外,interface兼容win32 com的二进制接口,可以用来调用com对象,例如,我们熟悉的D3D中的IDirect3D9:interface IDirect3D9 : IUnknown...{extern (Windows): HRESULT RegisterSoftwar
2007-01-14 10:47:00 1509
原创 D语言游戏编程(8):D语言基础之class
D语言的class不支持多继承 ,对象的实例只能使用引用类型,但是它不只是简单的一个C++的简化。D语言的class书写起来更方便,例如使用this作为构造函数的名称,对于虚函数不需要指定virtual属性,编译器会自动判断哪些函数需要列入vtabl。D语言的class在契约式编程方面提供两个方便的工具:invariant和unittest。下面是一些主要特性的演示代码。impor
2007-01-13 12:49:00 1502
原创 D语言游戏编程(7):D语言基础之struct
D语言的struct是一个简单的数据集合。它属于值类型;它不支持构造、析构函数,不支持虚函数,不支持继承,如果需要这些特性,则应该使用class。D语言的struct能实现所有C语言的功能。按照C++的属于,D语言的struct属于“Plain Old Data”类型。 下面是一些D语言的特性的演示代码。import std.stdio;void main()...{
2007-01-12 13:35:00 1481
原创 D语言游戏编程(6):D语言基础之Arrays
以下是D语言数组的一些演示代码:import std.stdio;void main()...{ tryArrays();}void tryArrays()...{ // 指针和C语言的类似,由于没有bounds checking,所以应尽量使用动态数组,out,inout参数 int *p; writefln(p); int[3] s = [3,4,
2007-01-11 17:58:00 1346
原创 D语言游戏编程(5):D语言基础之Pragmas,Expressions,Statements
Pragma比较简单,常用的两种: pragma(msg, "compiling..."); pragma(lib, "foo.lib"); 关于Expressions,Statements还是看代码吧。import std.stdio;void main()...{ tryExpressions(); tryStatements(
2007-01-10 13:15:00 1400
原创 D语言游戏编程(4):使用MS Visual Studio调试
最近一直在使用Ultra Edit作为开发环境,WinDBG来调试。遇到几个很大的问题就是DMD压缩包中带的WinDBG不支持Unicode格式的文本文件!不知道最新版本如何。调试环境还是习惯Visual Studio,试了一下,简单配置一下,VS基本上可以调试D语言生成的EXE!1. 建立一个空白的VC项目,项目名称任意;2. 设置项目属性:配置属性=>调试=>命令,设为你要调试的编
2007-01-09 12:21:00 1829
原创 D语言游戏编程(3):D语言基础之Attributes
下面是D语言文档Attributes一节讲述的主要内容,还是看代码吧!import std.stdio;void main()...{ tryAttributes();}//-- begin of Attributes ----------------------------------------------------------//attribute语法上都支持后面跟一个大括
2007-01-08 18:19:00 1524
原创 D语言游戏编程(2):D语言基础之Declarations,Types,Properties
首先需要熟悉一下D语言。D语言目前还没有什么书(有一本日文的,不知道小日本怎的对D这么热衷),所能参考的就是D语言的官方文档啦。不太适合编程的初学者,对于有一定变成经验的人来说,倒是挺合适的。英文原文从DMD官方网站可以找到:http://www.digitalmars.com/d/ ;中文翻译:http://blog.csdn.net/uframer/ 。 下面的源码就是针对D语言文档中的没
2007-01-07 17:02:00 1867 1
原创 D语言游戏编程(1):工作环境
前言作为一个游戏程序员,D语言对我是很有吸引力的!我相信有不少的人和我有同感。我热爱编程,但是我不能说我热爱C++。坦白的讲,如果是我一个人独立编程,我很乐意使用C++,它的好处就不必多说了,但是在一个稍微大一点的团队中,我一直希望找到一种 “更高级”的语言。这些年一直被C++折磨着,即便团队中有一个新人,有少许几行代码,就足够让整个团队调试一整天。最近的一次,有位兄弟写了如下代码:
2007-01-05 17:39:00 3045
原创 新年好!2007
2007年毫无悬念的在加班中开始了,首先要对正在看这篇blog的兄弟说声新年好!新的一年真是让人充满希望啊。2007年最大的祝福要送给我的小女儿,希望她健康成长。然后希望家人都健康、平安、快乐。:)2007年对自己的工作和学习也是充满希望。首先要做的就是攒一台新电脑,看看何时DX10的显卡价格能接受啊?装个vista,试试DX10,嘿嘿。不过在公司的项目方面,当然还要继续DX9的开发。
2007-01-01 12:24:00 1164
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人