游戏开发
文章平均质量分 86
sd008009
Need For Speed!
展开
-
DirectX 框架(一)
去年参赛做的虚拟漫游程序,使用了DXUT框架,感觉DXUT随然方便但是其结构太为复杂,搞不懂很多原理,从而错过了很多d3d的基础知识。放寒假以来一直在家学习基础知识,打算用自己的思想写出一个框架,可能在结构性能上差一些,但出现问题是可以很容易的解决^_^一下是使用了shader做了阳光反射的效果:一开始写对于一些类的封装想了很长时间,这次写出了精灵类,四元数相机类,md2导入类,x导入原创 2010-03-16 22:37:00 · 927 阅读 · 0 评论 -
聚光灯+法线贴图 shader
前几天看了两个shader分别是聚光灯和法线贴图,于是想把这两个shader结合起来,产生手电照射潮湿的凹凸墙面效果:本想很容易就能实现但是由于之前不理解光照模型的计算原理,所以我改起来相当费劲,经过努力终于弄明白了两者的原理,然后写出了shader:struct Mtrl{ float4 ambient; float4 diffuse; float4 spec; float spe原创 2010-03-16 22:43:00 · 1308 阅读 · 0 评论 -
Normap的初识
今天写了一个NormapXModel类,用来创建带有法线贴图效果的模型。在写完之后还是发现类的封装有很多不合理的地方。#pragma once#include #include #include #include "Util.h"class NormapXModel{public: LPDIRECT3DDEVICE9 pd3dDevice; LPD3DXMESH mes原创 2010-03-16 22:42:00 · 1139 阅读 · 0 评论 -
DirectX 框架(二)-- bsp场景管理
翻来覆去的考虑最终还是选用了bsp碰撞检测,由于之前对bsp不太了解,所以研究起来特别吃力,可是结果是可喜的!说“bsp格式的地图”不太准确,应该说是“bsp方式的场景管理”。之所以这样讲是因为一个bsp文件不仅承载了场景顶点位置、纹理坐标等信息,它还可以存储场景各个部分的可视信息、lightmap等数据。一旦你成功载入了bsp文件,你可以继续读取里面的信息来优化你的程序:1、可以利用里面可视原创 2010-03-16 22:45:00 · 2357 阅读 · 1 评论 -
对于法线贴图(Normal Map) 的深入研究
前几篇文章写过有关法线贴图的内容,这次文章将讨论其原理及相关优化。回过头来看一下原来的文章真有种想删掉的感觉。。。为什么叫法线贴图,我们知道法线(Normal)是垂直于一个面的直线,通过计算光线与这条法线的角度就可以知道与面的角度,进而可以计算出面应得到的颜色值。如果我们知道物体每个面的法线就能实现对这个物体进行光照渲染。但是一堵墙也许只有四个顶点,也就是只有一个面,它最终的渲染效果将会非常单一,假设这堵墙上有更多的砖的凹凸痕迹,我们增氧实现仅用四个顶点渲染出立体感很强,细节层次感很强的这堵墙呢,答案就原创 2010-07-12 13:41:00 · 1867 阅读 · 1 评论 -
3D电影的原理 - 原作者 猛犸
3D电影现在主要有时分、光分、色分三种技术,其中有些的确可以在电脑上实现。去年写过点关于这个的东西,看看能不能帮你解惑吧我们现在提到的3D电影,指的是具有三个维度、能够呈现立体效果的电影。在看3D电影时,我们不仅能看到上下、左右方向的运动,还能够看到离我们而去或者向我们而来的动作,就像我们在银幕里的角色们身边一样。3D电影更擅长于以一种以前不可能实现的方式表述屏幕上的空间关系,它和传统电影的区别,就像是雕像和照片的区别。说起来很有趣,3D电影的发明时间其实和传统电影差不多。在19世纪九十年代早期,几乎是转载 2010-07-13 23:51:00 · 2354 阅读 · 0 评论 -
3D电影到3D游戏
前几天看了一个3D 阿凡达的视频,视频有两个影像同时播放,我立刻就想到了原来看过的三维立体画,于是用眼睛把两个影像看成一个,重合在一起,效果令人吃惊,就是在电影院戴上立体眼睛的效果。 仔细观察一下便不难发现其原理:在不同的角度同时拍摄一个物体,然后放映的时候将两个角度的影像同时播放。这两个角度的摄像机不是随意确定的,就像人的两个眼睛,之间只有这细微的水平位移即可。 想到这里,做一个类似的3D立体游戏便不难了:(1)在A点渲染场景,到RenderTargetA上。(2)在A点向右或向左距离为1.f或5原创 2010-07-13 17:24:00 · 1048 阅读 · 0 评论 -
实时渲染的水特效
<br />对于实时渲染的水,看了很多文章后,大体思路如下:<br /> <br />(一)水波的实现<br />1、创建一个由四个顶点组成的矩形网格。<br />2、将两张法线纹理平铺在该网格上。<br />3、通过实时分别变动两张纹理的uv坐标,产生水流和水波的效果。<br />(二)倒影的实现<br />1、将场景中的模型相对于水面镜像后渲染到一张纹理上(Render Mirror Scene to a texture )。<br />2、将纹理投影到水面上,然后将水面原有的颜色和纹理颜色适当的混合。原创 2010-07-24 01:32:00 · 1517 阅读 · 0 评论