详细讲解Antialiasing的理论(上)(转)
详细讲解Antialiasing的理论(上)(转)[@more@] 在这篇文章中,我们会从数位讯号处理的理论角度来看 3D 电脑绘图中的 antialiasing 问题。当然,这并不是教科书(我也没能力写教科书 :P),所以我会尽可能避开数学式,而只是从观念的角度来说明这个问题。 首先,我们从数位讯号的基础来看。因为我们现在所用的电脑,几乎都是数位电脑,所以它们当然也只能处理数位的资料。所谓的数位资料,其实就是一堆数字,或更正确的说,一堆整数。因为数位电脑只能处理 0 和 1,所以它们所能处理的东西,可以说都是有限的整数。当然,我们可以用
详细讲解Antialiasing的理论(下)(转)
详细讲解Antialiasing的理论(下)(转)[@more@] 所以,只要把取样后的讯号,在 frequency domain 中,再经过一个 low pass filter(和取样之前用的那个一样),再进行一次 inverse Fourier transform,就可以得到原来的(经过 low pass filter 的)讯号了。 但是,Fourier transform 和 inverse Fourier transform 都是很花时间的工作。也就是说,在实际上是不可能真的用 Fourier transform 的。不过,low pass filter 其实是在 frequency domain 做乘法的运算,而它可以转换成在 spatial domain(或 time domain)的 convoluti
Zbuffer和Wbuffer簡介(转)
Zbuffer和Wbuffer簡介(转)[@more@] 几乎所有目前的 3D 显示晶片都有 Z buffer 或 W buffer。不过,还是常常可以看到有人对 Z buffer 和 W buffer 有一些基本的问题,像是 Z buffer 的用途、Z buffer 和 W buffer 的差别、或是一些精确度上的问题等等。这篇文章的目的就是要简单介绍一下 Z buffer 和 W buffer。 Z buffer 和 W buffer 是做什么用的呢?它们的主要目的,就是去除隐藏面,也就是 Hidden surface elimination(或是找出可见面,Visible surface detemination,这是同样意思)。在 3D 绘图中,只要有两个以上的三角面,就
介绍顶点着色器和像素着色器(转)
介绍顶点着色器和像素着色器(转)[@more@] 第一部分 顶点着色器 什么是顶点着色器? 1 顶点着色器是一组指令代码,这组指令代码在顶点被渲染时执行。 2 同一时间内,只能激活一个顶点着色器。 3 每个源顶点着色器最多拥有128条指令(DirextX8.1),而在DirectX9,则可以达到256条。 为什么大家要使用顶点着色器? 1 顶点着色器可以提高渲染场景速度。 2 用顶点着色器你可以做布类仿真,高级别动画,实时修改透视效果(比如水底效果),高级光亮(需要像素着色器支持) 顶点着色器如何运作? 简单
游戏制作详解自----OpenGL入门教程(九)(转)
游戏制作详解自----OpenGL入门教程(九)(转)[@more@] OpenGL中用表面来表示物体,一个物体就是一组平面。光线照射在平面上会产生反射,入射线与反射线的角平分线就是法线,它垂直于平面。面法线有两种可能的方向,我们称面有两侧。当描述封闭物体的外表面时,法线应该从内部指向外部;而表示在物体内部时,法线应该从外部指向内部。 用glNormal*(N_Vector);指定当前法向矢量。此后的顶点都会使用该法向,直到再次改变。 面的法向矢量是怎么确定的呢?右手手指沿顶点顺序握拳,拇指竖立所指方向即为一个面的法向,如果面对该平
游戏制作详解自----OpenGL入门教程(八)(转)
游戏制作详解自----OpenGL入门教程(八)(转)[@more@] OpenGL中使用RGBA色彩体系,RGB为红绿蓝三原色,A为α值,该值代表色彩融合时所占的比例。颜色是顶点的重要属性之一,没有色彩的世界是毫无生气的。 使用glColor*(R,G,B,A);设定当前颜色,此后定义所有的顶点都将是这个颜色的,直到再次改变当前颜色。该命令有两种常用形式glColor*f和glColor*ub,后者可以直接使用GetRValue(pixel)取得的颜色分量作为参数。下面左边的代码就可以生成右边漂亮的三角形: glBegin(GL_TRIANGLES); glColor3f(1.0,0.0,0.0); g
游戏制作详解自----OpenGL入门教程(七)(转)
游戏制作详解自----OpenGL入门教程(七)(转)[@more@] OpenGL中的物体是用面边界模型来描述的。我们将物体表面分割成许多个平面,记录面的形状、颜色、纹理,OpenGL根据这些参数再把这些个面绘制出来,我们就能在场景中看到立体的实体了。 物体模型最基本的参数是它的形状,形状可以用表面来记录。而记录面的边缘就能描述面的形状。描述边缘的方法是记录边上所有线段的端点。所以用面边界模型描述物体形状的核心就是记录物体表面所有的顶点。这些顶点按所在边的顺序排列起来就能描述一个平面,许多的平面就能表示一个物体的表面,显然
游戏制作详解自----OpenGL入门教程(六)(转)
游戏制作详解自----OpenGL入门教程(六)(转)[@more@] OpenGL中从三维场景到屏幕图形要经历如下所示的变换过程: 其中四种坐标经常要在程序中用到:世界坐标,物体坐标,设备坐标和眼坐标。 世界坐标是OpenGL中用来描述场景的坐标,Z+轴垂直屏幕向外,X+从左到右,Y+轴从下到上,是右手笛卡尔坐标系统。我们用这个坐标系来描述物体及光源的位置。 将物体放到场景中也就是将物体平移到特定位置、旋转一定角度,这些操作就是坐标变换。OpenGL中提供了glTranslate*/glRotate*/glScale*三条坐标变换命令,利用OpenGL的
游戏制作详解自----OpenGL入门教程(五)(转)
游戏制作详解自----OpenGL入门教程(五)(转)[@more@] 如果用过3DS/LIGHTWAVE等任何一种三维图形软件包,就可以发现制作一个三维场景无非以下几项工作: 建模:制作各种物体。 放置:将做好的各物体通过平移、旋转等放到场景空间的适当位置。 上色:给物体模型指定颜色或表面纹理。 打灯:在场景中适当位置放置几盏灯以照亮场景。 摄像:在空间适当位置放上适当角度的摄像机,以得到所需的视觉效果。 用OpenGL开发应用程序与之类似,通常是: 设定视见体 定义光源 生成场景 而三维图形生成的流程如下:
游戏制作详解自----OpenGL入门教程(四)(转)
游戏制作详解自----OpenGL入门教程(四)(转)[@more@] OpenGL是一种基于客户/服务器和管道(PipeLine)的图形库。即一个应用程序(客户)将各种命令和数据写入管道,这命令和数据将被暂时保存起来,图形库(服务器)直到收到一条专门的指令才会开始处理它们,并将处理结果通过管道传给用户。 所以OpenGL应用程序的基本结构就是: 建立管道 根据需要向管道中写入数据和指令 关闭管道 在Windows95/NT环境中,这个管道就是OpenGL着色环境――(OpenGL Render Context)简称RC。因此建立管道实际上就是获取一个可用的RC。
DirectX图形接口指南的介绍(转)
DirectX图形接口指南的介绍(转)[@more@] 第一人称视角变换主要是view transformation matrix的变换。其实就是不断变动eye point和camera look-at target的坐标。具备基本的三维数学和矩阵运算技巧就可以了。 要弄清视角移动和转动的原理,有必要先看看DX文档的Matrices和View Transformation章节。文档的相关3D数学原理和距阵计算以及接口方法搞清楚了。下面的工作就相当简单。 首先定义D3DXVECTOR3 VDot,VAtPoint,VUp; 视景的移动 前后移动和左右移动 其实就是同时移动VDot和VAtPoint,即同时移
在D3D中实现第一人称视角控制(转)
在D3D中实现第一人称视角控制(转)[@more@] 这两天做了第一人称视角控制,就像quake一样用鼠标控制方向,用键盘控制左右前后。鼠标和键盘用directinput控制输入。 首先,我们可以知道d3d的view矩阵有三个组成部分,分别是三个向量:眼睛所在点、眼看着的点、向上的方向。 所以,我们首先定义三个向量: D3DXVECTOR3 VDot,VAtPoint,VUp; 赋予初值: VDot=D3DXVECTOR3( 2.0f, 0.0f, 2.0f ); VAtPoint=D3DXVECTOR3( 0.0f, 0.0f, 0.0f ); VUp=D3DXVECTOR3( 0.0f, 1.0f, 0.0f ); 输入到VI
游戏开发之3D游戏制作入口技术(转)
游戏开发之3D游戏制作入口技术(转)[@more@] 1、引言(Introduction) 3D场景中的对象通常存储在一个场景图里,并由树结构负责划分它们的层次。最简单的场景渲染方法就是从照相机的视角出发,遍历整个树(从根处开始递归直到处理完所有的分支),然后绘制每个可见或者局部可见的对象。一个对象是否可见取决于它的包围盒(沿坐标轴的包围盒,是个球体或其它什么东西)是否由部分进入了相机的视锥体。 The objects of a 3D scene are generally stored in a scene graph, a tree structure intended to form them into a hierarchy.
Direct3D中使用网格模型的实现方法(转)
Direct3D中使用网格模型的实现方法(转)[@more@] Complicated geometry is usually modeled using 3-D modeling software and saved to a file. An example of this is the .x file format. Microsoft? Direct3D? uses meshes to load the objects from these files. Meshes are somewhat complicated, but Microsoft? Direct3DX contains functions that make using meshes easier. The Meshes sample project introduces the topic of meshes and shows how to load, render, and unload a mesh. 复杂的几何模型通常是由3D建模软体
用J2ME在移动设备上实现动画(转)
用J2ME在移动设备上实现动画(转)[@more@] 使用MIDP(Mobile Information Device Profile)的开发人员经常会抱怨用些什么办法才可以在一个MIDlet上显示动画。MIDP 1.0 没有直接提供对动画的支持(MIDP 2.0支持),但真要是自己去实现,其实也并非是一件很难的事。 任何动画的最基本的前提,是要在足够快的时间内显示和更换一张张的图片,让人的眼睛看到动的画面效果。图片必须按照顺序画出来。从一张图片到下一张图片之间的变化越小,效果会越好。 首先要做的,是使用你的图片处理软件(比如ps或者firework)创建一系列相同大
CCNA/CCNP学习教程:网络地址转换(NAT)(转)
CCNA/CCNP学习教程:网络地址转换(NAT)(转)[@more@] 网络地址转换(NAT,Network Address Traslation)被广泛应用于各种类型Internet接入方式和备种类型的网络中。原因很简单,NAT不仅完美地解决了lP地址不足的问题,而且还能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。虽然NAT可以借助于某些代理服务器未实现,但考虑到运算成本和网络性能,很多时候都是在路由器上来实现的。关于NAT的考试在CISCO认证中,占有很大一部分,下面我们从下面几个部分,由浅入深,带领您认识NAT,掌握NAT,精通NAT。 一、网络地
游戏制作相关---HAM教程翻译本(四)(转)
游戏制作相关---HAM教程翻译本(四)(转)[@more@] 你们在看了这篇教程后可能想知道这目的或这跟第六天有什么不同。老实说,没有太大不同,除了今天的地图大小是512×512,还有你可以看到怎么使地图移动。我们将要对今天的图形做一点点不同的事情。原因是我不想要一个优化的调色板。如果你一直很注意,你应该已经注意到gfx2gba通过去掉图像中没有用到的颜色来优化调色板。这很好。然而今天,当我用ham_SetTextCol()时我想用一种确切的颜色, 在之前的Photoshop处理中计算出颜色的索引号是更容易的。 在转换图片时,打入:
游戏制作相关---HAM教程翻译本(五)(转)
游戏制作相关---HAM教程翻译本(五)(转)[@more@] 到了第11天我将说明怎么旋转背景。 HAM 做这个很简单,只要用 RotBgEx() 函数。这个函数十分强大,它不仅能旋转背景还能放大缩小还有卷动背景。注意: 还有一个叫做 RotBg() 的函数, 但是我更喜欢 RotBgEx() 因为你除了旋转还可以控制更多。 噢,不要忘了。你只能在模式1和模式2中旋转。 在模式1中,背景2可以旋转/缩放。在模式2中,背景2和背景3可以旋转/缩放。如果你忘了请再看一下 Day 1 。 用下面这句转换图片:gfx2gba -fsrc -m -protate.pal -rs -t8 rotate.bmp
CCNA专业英文词汇红宝书---F、G、H篇(转)
CCNA专业英文词汇红宝书---F、G、H篇(转)[@more@] 作者:深圳浪人 CCNA为思科最基础的入门认证,其中,考试偏重网络概念和理论,对于初学者来说,不少专业英文术语难以理解,导致学员学习进度维难。CISCO系列认证的原版教材,专业词汇出现频率积高,考生只要熟悉ChinaITLab工作人员为你准备的这本红宝书,相信学习起来一定事半功倍^-^ failure domain (故障域)----- 令牌环中出现故障的区域。当一个站获得严重故障 (如网络出现电缆断开)信息时,它发送一个信标帧,包括该站报告的故障、它的NAUN和之间的每件事。这就定义了故
CCNA自学教材推荐(转)
CCNA自学教材推荐(转)[@more@] 1.CCNA ICND Exam Certification Guide (CCNA Self-Study, exam #640-811) 出版时间:2003年8月4日,中文版授权给人邮,估计2004年第一季度才能上市。 ccnaicnd.jpg > ccnaicnd01.jpg > 2.CCNA Certification Library (CCNA Self-Study, exam #640-801) 出版时间:2003年8月14日,中文版授权给人邮,估计2004年第一季度才能上市。 ccnalibrary.jpg > ccnalibray01.jpg > 3.CCNA INTRO Exam Certification Guide (CCNA Self-Study, exam #640-821)