自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 3D渲染管线

Vertex Shader和Fragment Shader是可编程管线。Vertex Array/Buffer objects:顶点数据来源,这时渲染管线的顶点输入,通常使用Buffer objects效率更好。在今天的示例中,简单起见,使用的是 Vertex Array;Vertex Shader:顶点着色器通过可编程的方式实现对顶点的操作,如进行坐标空间转换,计算 per-

2014-08-01 11:48:14 971

原创 编辑文章 - 博客频道 - CSDN.NET

Ø  Vertex Shader和Fragment Shader是可编程管线。 Ø  Vertex Array/Buffer objects:顶点数据来源,这时渲染管线的顶点输入,通常使用Buffer objects效率更好。在今天的示例中,简单起见,使用的是 Vertex Array; Ø  Vertex Shader:顶点着色器通过可编程的方式实现对顶点的操作,如进行坐标空

2014-08-01 11:36:24 1025

转载 Unity3d 引擎原理详细介绍

体系结构 为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。Unity3D 引擎 Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个平台.Unity3D由游戏引擎和编辑器。该引擎包含的软件组件,在游戏的研究与开发中最常见的和经常性的任务。发动机所涵盖的主题包括声音,图形,物理和网络功能。该引擎支持C#,B

2014-06-11 15:33:48 2262

原创 Unity3D 脚本架构

LateUpdate():如果启用,会在每一帧中被调用。在所有Update函数被调用之后才执行。有利于程序的有序执行。(例如:跟随摄像机就应该在LateUpdate执行,因为它跟随的对象也许需要在Update中执行)  OnPreCull():摄像机在场景中剔除对象前被调用。剔除确定哪些对象是在摄像机中是可见的。OnPreCull是在剔除这个过程之前被调用的,此消息被发送到所有附加了脚本的

2014-06-11 15:30:54 649

转载 Unity 3D Assetbundle 资源分类

需求:在移动开发中,手动控制资源的加载、释放和热更新,是很有必要的。而Unity通过AssetBundle可以实现该需求,但是如果项目资源多起来的话一个个手动打包成AssetBundle则很麻烦。而本文正为此提供一套一键打包的方案。资源分类、加载和实例化过程:分类资源:先将游戏资源分类,这里说的分类不是按资源类

2014-06-07 13:32:21 1501

转载 Unity 3D 内存优化

Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的。其实场景里所有静态的对象也有这么一个加载过程,只是Unity3D后台替你自动完成了。

2014-06-07 13:27:23 833

转载 Android mk

Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译。因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的。因此,您应尽量少声明变量,不要认为某些变量在解析过程中不会被定义。一个Android.mk文件可以编译多个模块,每个模块属下列类型之一:  1)APK程序  一般的Andr

2012-11-13 11:24:45 431

原创 深入探讨透视投影坐标变换

深入探讨透视投影坐标变换 写3d图形程序,就一定会做坐标变换。而谈到坐标变换,就不得不提起投影变换,因为它是所有变换中最不容易弄懂的。但有趣的是,各种关于透视变换的文档却依然是简之又简,甚至还有前后矛盾的地方。看来如此这般光景,想要弄清楚它,非得自己动手不可了。所以在下面的文章里,作者尝试推导一遍这个难缠的透视变换,然后把它套用到 DX和 PS2lib 的实例中去。一般概念

2012-06-19 09:59:05 648

转载 资源动态加载

在flash时代,资源的动态加载非常的普遍,主要是受限于网速的快慢,我们在用unity3d制作在线项目的时候,不可避免的要考虑到优化加载的问题,这篇文章算是比较好的经验之谈了,转来大家看看!用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载。比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕。应该优先加载用户附近的场景资源,在游戏的过程中

2012-03-24 17:45:50 850 1

原创 std::list 自定义排序

struct cmp { bool operator () (const string& a,const string& b) { return a.size() < b.size(); }}; int _tmain(int argc, _TCHAR* argv[]){std::list list_story;list_story.push_back("the"

2012-03-21 17:32:00 2555

转载 Ogre 资源管理

资源组命名组可以作为一个整体加载与卸载。在加载,卸载,初始化时把把组中的所有资源作为一个执行单位来看待,而不是逐个进行处理。资源组管理纯粹是了为了管理上的方便,是否使用组的方式与性能无关。假如向资源组管理器中加入了资源位置而没有指定组名,那么这些资源位置被放入"General"组中。资源组与世界几何缺省情况下,ogre把加载的世界几何放入"General"组。也可以覆盖(ove

2011-12-13 09:16:49 723

转载 Hardware Buffers

5 Hardware Buffers顶点缓存,索引缓存以及像素缓存的大多数特性都是从HardwareBuffer继承的,一个硬件缓存的一般前提是它是一个内存块,在这里你能做想要的任何事情,缓存本身没有格式与它相关,二是与使用它的方法相关。也就是说,硬件缓存就像使用”malloc”分配的内存块,只不过区别是它位于GPU或者AGP中。相关知识:三种内存:AGP内存,显卡本地内存,系统内

2011-10-28 09:20:27 1039

原创 String 操作

<br />string类的构造函数:<br />string(const char *s);    //用c字符串s初始化<br />string(int n,char c);     //用n个字符c初始化<br />此外,string类还支持默认构造函数和复制构造函数,如string s1;string s2="hello";都是正确的写法。当构造的string太长而无法表达时会抛出length_error异常 <br /><br />string类的字符操作:<br />const char &op

2011-03-29 11:51:00 413

原创 Shade模型

漫反射光照 <br />粗糙的物体表面向各个方向等强度地反射光, 这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection)。<br />漫反射光照符合Lambert余弦定律,编程中通常采用它的简化形式,即:漫反射光的光强与入射光反方向L和顶点表面法向量N夹角的余弦成正比,例如当入射光反方向L垂直于顶点时,即与顶点法线N夹角为0度时,余弦值为1,此时有最大光强;若入射光反方向L平行于顶点所在平面,即与法线N夹角为90度,余弦值为0,没有光照。<br />如下图所示: <br /><

2011-03-29 11:49:00 1426

原创 光照模型

漫反射光照 粗糙的物体表面向各个方向等强度地反射光, 这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection)。漫反射光照符合Lambert余弦定律,编程中通常采用它的简化形式,即:漫反射光的光强与入射光反方向L和顶点表面法向量N夹角的余弦成正比,例如当入射光反方向L垂直于顶点时,即与顶点法线N夹角为0度时,余弦值为1,此时有最大光强;若入射光反方向L平行于顶点所在平面,即与法线N夹角为90度,余弦值为0,没有光照。如下图所示: 而余弦值可以通过对光线向量和法线向量进行点乘得到,

2011-02-14 13:40:00 2002

原创 光照模型

漫反射光照 <br />粗糙的物体表面向各个方向等强度地反射光, 这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection)。<br />漫反射光照符合Lambert余弦定律,编程中通常采用它的简化形式,即:漫反射光的光强与入射光反方向L和顶点表面法向量N夹角的余弦成正比,例如当入射光反方向L垂直于顶点时,即与顶点法线N夹角为0度时,余弦值为1,此时有最大光强;若入射光反方向L平行于顶点所在平面,即与法线N夹角为90度,余弦值为0,没有光照。<br />如下图所示: <br /><

2011-02-14 13:40:00 2730

原创 光照模型

漫反射光照 <br />粗糙的物体表面向各个方向等强度地反射光, 这种等同地向各个方向散射的现象称为光的漫反射(diffuse reflection)。<br />漫反射光照符合Lambert余弦定律,编程中通常采用它的简化形式,即:漫反射光的光强与入射光反方向L和顶点表面法向量N夹角的余弦成正比,例如当入射光反方向L垂直于顶点时,即与顶点法线N夹角为0度时,余弦值为1,此时有最大光强;若入射光反方向L平行于顶点所在平面,即与法线N夹角为90度,余弦值为0,没有光照。<br />如下图所示: <br /><

2011-02-14 13:39:00 912

原创 Terrain Rendering Using GPU-Based Geometry Clipmaps

Review of Geometry Clipmaps<br />In large outdoor environments, the geometry of terrain landscapes can require significant storage and rendering bandwidth. Numerous level-of-detail techniques have been developed to adapt the triangulation of the terrain me

2011-02-12 13:45:00 1490

原创 Introduction to the DirectX 9 High-Level Shader Language

<br />Craig Peeper<br />Microsoft Corporation<br />Jason L. Mitchell<br />ATI Research<br />July 2003<br />Applies to:<br />   DirectX® 9 High-Level Shader Language<br />Summary: In an excerpt from the forthcoming book ShaderX2 - Introduction and Tutorials

2010-11-09 11:22:00 3603

原创 DirectX 9高层着色语言介绍1——引言、简单例子、汇编语言和编译对象

引言高层着色语言(HLSL)是DirectX® 9最为强力的新组件之一。使用这种标准的高级语言, 在进行着色时编写者可以专注于算法而不用再去理会诸如寄存器的分配,寄存器读端口限制, 并行处理指令等等硬件细节. 除了把开发者从硬件细节中解放出来之外,HLSL 也具有高级语言所有的全部优势,诸如:代码重用容易, 可读性增强以及存在一个优化过的编译器。本书和 ShaderX2 - Shader Tips & Tricks 这本书的许多章节就用到了HLSL编写的着色器. 阅读完本章引言后,你会很容易理解那些着色器并

2010-11-09 10:50:00 761

转载 HLSL编程实现PhotoShop滤镜效果

<br />简介.<br />1)Direct3D和HLSL<br />众所周知,Direct3D是微软开发的用于编写Windows下高性能图形程序的3D API。通过Direct3D,我们可以访问高速的图形加速卡。它是DirectX众多成员的一部分。<br />HLSL 全称High Level Shading Language . 是MS推出Direct3D 9时的一个重要更新。所谓的Shading Language还需要从Direct3D的图形管道说起,Direct3D在Direct3D 8以前只能工

2010-11-09 10:34:00 881

转载 LOD技术

概述:      虚拟现实中场景的生成对实时性要求很高,LOD技术是一种有效的图形生成加速方法。本文主要介绍了LOD技术的研究内容、LOD模型的生成算法以及LOD模型在虚拟场景生成中的选择。最后,对LOD技术未来的研究方向作了展望。 一、引言          虚拟现实技术是一种逼真地模拟人在自然环境中视觉、听觉、触觉及运动等行为的人机交互技术。它融合了计算机图形学、多媒体技术、人工智能、人机接口技术、数字图像处理、网络技术、传感器技术以及高度并行的实时计算技术等多个信息技术分支。它的主要特征是沉浸感、交互

2010-10-19 14:20:00 965

原创 Ogre 地形管理

OGRE除了我们已经见过的普通场景以外还支持大型复杂的场景,如:宽阔的野外地形和复杂的大楼和迷宫。3D引擎支持大型复杂场景的主要难度在于对场景的组织和裁减。一个大型场景的三角型数量极其庞大,如果没有有效的场景组织和裁减方法,计算机在渲染的时候效率会很低。解决大办法就是用BSP或八叉树等数据结构将场景组织起来,利用与这些数据结构相关的快速检索算法将摄象机看到的内容拣选出来,再送到渲染器进行渲染,这样图形处理器的负载才会减小。       在OGRE中场景管理器的类型有四种:        ST_GENERIC

2010-10-15 14:55:00 1958 1

转载 四元数与旋转

 在讨论「四元数」之前,我们来想想对三维直角座标而言,在物体旋转会有何影响,可以扩充三维直角座标系统的旋转为三角度系统(Three-angle system),在Game Programming Gems中有提供这麼一段: Quaternions do not suffer from gimbal lock. With a three-angle(roll, pitch, yaw) system, there are always certain orientations in which there is

2010-10-13 10:46:00 601

转载 Overlay 脚本

<br />表层脚本提供给你用脚本定义图层以方便重复使用的能力。与此同时,你可以使用SceneManager,Overlay以及 OverlayElement类的方法在代码中为一个场景建立所有图层,虽然在使用中,有点儿不太好用。相反你可以以文本文件的方式储存层定义,而在需要 的时候调用。<br />装载脚本<br />表层脚本在初始化时由系统装入:默认,它搜索所有普通资源位置(参看Root::addResourceLocation)查找有 ‘.overlay’扩展名的文件,并分析它。如果你想要分析别的扩展名

2010-09-29 15:45:00 584

原创 Ogre骨骼动画融合

<br />AnimationBlender.h<br /> <br /> class AnimationBlender{public: enum BlendingTransition //不同的混合方式 { BlendSwitch, // 直接切换到目标动画 BlendWhileAnimating, // 交叉淡入淡出(源动画比例缩小,同时目标动画比例增大) BlendThenAnimate

2010-09-19 16:31:00 747

转载 DLL的概念、dll导出类

1、 DLL的概念DLL(Dynamic Linkable Library),动态链接库,可以向程序提供一些函数、变量或类。这些可以直接拿来使用。静态链接库与动态链接库的区别:(1)静态链接库与动态链接库都是共享代码的方式。静态链接库把最后的指令都包含在最终生成的EXE文件中了;动态链接库不必被包含在最终EXE文件中,EXE文件执行时可以“动态”地引用和卸载这个与EXE独立的DLL文件。(2) 静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接库。动态链接库的

2010-09-19 15:06:00 398

[英文游戏编程图书全集].3D.Game.Programming

Direct3D 3DGame Programming

2009-09-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除