- 博客(52)
- 资源 (4)
- 收藏
- 关注
转载 着色器和shade
Properties块内的语法都是单行的。每个属性都是由内部名称 开始,后面括号中是显示在检视面板(Inspector)中的名字和该属性的类型。等号后边跟的是默认值。零基础Unity3D游戏开发系列 第四章:游戏资源导入导出(三)材质与着色器已经定义好了需要的属性,可以开始写自己的着色器(shader)了不同的显卡有不同的渲染能力。例如,某些显卡支持片段程序(
2013-08-27 14:53:47 3359
原创 灯光
1、灯光灯光属性每种灯光只拥有一部分下列属性:类型(Type):当前光照物体的类型1)方向光(Directional):一个放置在无穷远的光源。它将影响场景中的所有物体并不会衰减。2)点光源(Point):一个从它的位置向所有方向发光的光源,将影响位于它的范围内的所有物体。3)聚光灯(Spot):照亮一个锥形(Spot Angle)的范围(Range),只有在这个区域中的物
2013-08-27 13:57:49 1184
转载 UNITY 3D笔记
UNITY 3D笔记//#pragma strict//////一、声明变量//var a : int = 1;//整型////var b : float = 0.05;//浮点////var c : GameObject;//游戏物体////var c2 : Rigidbody;//刚体////var c3 : Collider;//碰撞//
2013-08-26 11:53:00 1628
转载 OpenGL入门学习
OpenGL入门学习说起编程作图,大概还有很多人想起TC的#include 吧?但是各位是否想过,那些画面绚丽的PC游戏是如何编写出来的?就靠TC那可怜的640*480分辨率、16色来做吗?显然是不行的。本帖的目的是让大家放弃TC的老旧图形接口,让大家接触一些新事物。OpenGL作为当前主流的图形API之一,它在一些场合具有比DirectX更优越的特性。1、与C语言紧密结合
2013-08-25 21:04:34 3750
原创 GL入门
头文件#include #include #include 库文件:opengl.lib, glaux.lib, glu32.lib支持类型(系统之间兼容)GLfloat, GLint, GLenum, etc.
2013-08-25 20:15:29 1078
原创 OGRE 动画
动画 动画是由若干静态画面,快速交替显示而成。因为人的眼睛会产生视角暂留,对上一个画面的感知还未消失。计算机图形学也遵循这一本质。 OGRE本身不能了解场景中动画角色动作,不知道什么是抬手或走路,只能简单从数学角度处理定点的位移和旋转。OGRE动画类型 骨骼动画:用骨骼结构来定义网格数据。 顶点动画:保存顶点的快照来决定
2013-08-25 12:55:33 782
原创 OGRE 启动顺序
启动过程 1、创建Root对象 2、定义Ogre将要是用的资源 3、选择并设置渲染系统DX,OL 4、创建渲染窗口OGRE所处的窗口 5、初始化你要是用的资源 6、用这些资源来建立一个场景 7、设置第三方库或插件 8、创建一些帧监听 9、
2013-08-25 10:16:00 749
原创 CEGUI
1、简介 Crazy Eddies GUI系统 为不具备或缺乏用户界面制作功能的图形API或引擎提供免费用户界面支持的开源的库。这个是用c++编写的库是针对那些想制作优秀游戏但没有GUI子系统的专业开发者。 1、1配置CEGUI 头文件 :$(OGRE_HOME)\include\CEGUI 库文件 :
2013-08-25 09:52:32 696
原创 帧监听器
帧监听器 实现 3、实现交互 bool frameStarted (const FrameEvent &evt) { 输入处理输入,实现与游戏场景的交互
2013-08-25 09:45:49 885
原创 OGRE 摄像机与光照 地 天空 雾
摄像机 视口 摄像机所拍摄的场景在渲染窗口中显示的区域就是视口。 三类阴影: 调制纹理阴影 SHADOWTYPE_TEXTURE_MODULATIVE 是三种文理中最节省资源的。他创建阴影投影的黑与白到文理,然后用到场景中。 调制模板阴影 SHADEOWTYPE_STENCLIL_MODULATIVE
2013-08-25 01:12:11 978
转载 game sample
Michael AgiusCIS 587 – Fall 2001September 25, 2001Game ReviewDeveloped By Lionhead StudiosPublished by Electronic ArtsGame Title: Black & WhiteDeveloper:
2013-08-24 16:58:21 1164
原创 游戏程序员具备
软件设计的基本技能丰富的知识面 软件工程、数据结构、数据库、算法设计等2D/3D图形学、人工智能、音频/视频处理 、人机交互、计算机网络坚实的数学和物理基础:线性代数、欧氏几何、牛顿物理学经验和能力综合运用各片断技术的经验不断学习新技术的能力游戏的开发常常受限于运行时间或者存储空间等资源因素,但却处处追求高效率和高性能。其他游戏引擎,如Ogr
2013-08-24 16:49:56 1083
原创 OGRE消息机制
消息机制的设计一般总要设计到三个部分:消息的产生、消息的传递和消息的处理。OGRE中的消息处理者的抽象类主要是listener类,而listener必须是对应特定的target的,所以可以认为是由listener和target两个抽象类组成。而消息传递由Dispatcher和Processor组成。一般来讲立即模式适合于3D场景漫游过程,当在每帧渲染之前,系统捕
2013-08-24 16:21:20 881
原创 游戏参考资料
http://www-cs-students.stanford.edu/~amitp/gameprog.htmlAmit’s game programming informationhttp://www.cgda.org/Game developer associationhttp://gpp.netfirms.com/Game ++ mega sitehttp://www
2013-08-24 11:39:53 974
原创 投影
投影变换:把三维物体变为二维图形表示的过程称为投影变换。如何产生真实感图形?何谓真实感图形逼真的示意的人们观察现实世界产生的真实感来源于空间位置关系----近大远小的透视关系和遮挡关系光线传播引起的物体表面颜色的自然分布解决方法----建立光照明模型、开发真实感图形绘制方法。三维物体研究1、投影 2、三维形体表示 3、消除隐藏面和隐藏线 4、建立光照
2013-08-23 18:07:59 630
原创 图形变换
交换的数学基础 矩阵乘法的结合律及分配律 A(B ·C) = (A ·B)C (A+B) · C = A · C+ B · C C ·(A+B) = C ·A + C · B 矩阵的乘法不适合交换律齐次坐标所谓齐次坐标表示法就是由n+1维向量表示一个n维向量。如n维向量(P1,P2, … ,Pn)表示为(hP1,hP2,hPn,h)
2013-08-23 15:11:47 900
原创 裁剪、反走样
裁剪 裁剪:确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图形。这个选择过程称为裁剪。 图形裁剪算法,直接影响图形系统的效率。点的裁剪 假设窗口的左下角坐标为(xL,yB),右上角坐标为(xR,yT),对于给定点P(x,y),则P点在窗口内的条件是要满足下列不等式: xL 直线的裁剪直线段裁剪算法是复杂图形裁剪的基础。
2013-08-23 14:15:33 929
原创 Object
‘I3DObject::I3DObject(void) : m_vPos(0.0f, 0.0f, 0.0f) , m_vLook(0.0f, 0.0f, 1.0f) , m_vRight(1.0f, 0.0f, 0.0f) , m_vUp(0.0f, 1.0f, 0.0f) , m_vSpeed(100.0f, 100.0f, 100.0f) ,
2013-08-23 00:30:08 651
原创 数学知识---平面
bool Plane::isIntersect(const Line & line, Vector3 * cross) const { float distS = distToPoint(line.start); float distE = distToPoint(line.end); if(distS * distE > 0)
2013-08-22 22:59:54 629
原创 数学知识三----点在三角形内****
bool pointinTriangle(const Vector3 & A, const Vector3 & B, const Vector3 & C, const Vector3 & P) { Vector3 v0 = C - A ; Vector3 v1 = B - A ; Vector3 v2 = P - A ; f
2013-08-22 22:29:50 1121
原创 数学知识二
线段: Vector3 Line::project(const Vector3 & point) { Vector3 n = direction(); //直线方向 Vector3 sp = point - start; //start -> point float d = sp*n; //边sp在直线上的投影长度
2013-08-22 20:12:20 738
原创 数学知识
求三个三角形相交 //分割定理求两个2d三角形相交 bool triangle2DIntersect(Vector2 triA[3], Vector2 triB[3]) { bool signA = inside( triA[1] - triA[0], triA[2] - triA[0] ); bool signB = inside( tri
2013-08-22 19:34:48 683
原创 math.h
#pragma once#include "PhysicsConfig.h"#include #include #include #include namespace Physics{const float MAX_FLOAT = 1e30f;const float MIN_FLOAT = -MAX_FLOAT;const float MIN_DIST = 0.001f;
2013-08-22 16:23:40 1016
原创 智能指针
#include /** 引用计数类*/class IBase{public: IBase(void) : m_bManaged_(true),m_nRefCounter_(0) { }; virtual ~IBase(void) { } /** 增加引用计数*/ void addRef(void) { ++m_nRefCounter_; }
2013-08-22 15:47:21 679
原创 帧缓冲器:分页
帧缓冲器 帧缓冲器的容量往往设计得比屏幕画面的位图大得多,也就是说,帧缓冲器可以同时存放多幅画面的位图,这时帧缓冲器区域可分成若干页面,每个页面存放一幅位图,并通过控制器就实现不同画面的切换。页面的大小可以划分得比屏幕位图大得多,甚至是整个帧缓冲器,这时,从程序员的角度来看,可输出显示的画面将远大于实际的物理屏幕,此时物理屏幕仅是一个窗口,它显示的不过是全部
2013-08-22 10:02:25 1893
原创 图形设备与系统
图形显示设备 图形输出包括图形的显示和图形的绘制,图形显示指的是在屏幕上输出图形 图形绘制通常指把图形画在纸上,也称硬拷贝,打印机和绘图仪是两种最常用的硬拷贝设备。阴极射线管 CRT Cathode Ray Tube 由于荧光物质在高速电子的轰击下会发生电子跃迁,即电子吸收到能量从低能态变为高能态。由于高能态很不稳定,在很短的时间
2013-08-22 08:48:42 1117
原创 碰撞
首先我们要生成的地形顶点应该是n*m个顶点在X,Z平面上成矩形(推荐正方形)规则的排列,就是X,Z坐标是有规律的(为简单期间X,Z均在正半轴),而Y值则是不同的,Y值表现的就是地形的高低。(Y值可以算法算出来,比如随机取,也可以是用高度图得到,推荐后者。)然后用一个n*m的2维数组MapData[n][m]记录Y值。关键的计算人物高度部分到了。首先根据人物坐标得到保存人物所在的三角形的三个
2013-08-20 09:12:58 812
转载 游戏开发中常用的设计模式
游戏开发中常用的设计模式出自http://blog.csdn.net/duzhi5368/archive/2008/04/22/2314232.aspx使用设计模式来提高程序库的重复利用性是大型程序项目开发必须的。但是在“四人帮”的设计模式概述中提到了23种标准设计模式,不但难以记住,而且有些设计模式更多的适用于应用程序开发,对游戏项目引擎设计并没有很多的利用价值。根据经验,精挑细
2013-08-18 23:43:07 670
原创 白话经典算法系列之四 直接选择排序及交换二个数据的正确实现
直接选择排序和直接插入排序类似,都将数据分为有序区和无序区,所不同的是直接播放排序是将无序区的第一个元素直接插入到有序区以形成一个更大的有序区,而直接选择排序是从无序区选一个最小的元素直接放到有序区的最后。 设数组为a[0…n-1]。1. 初始时,数组全为无序区为a[0..n-1]。令i=02. 在无序区a[i…n-1]中选取一个最小的元素,将其与a[i]交换。
2013-08-18 01:14:48 785
原创 游戏数学
void CMatrix4x4::Translate(float x, float y, float z){ matrix[12] = x; matrix[13] = y; matrix[14] = z; matrix[15] = 1;}
2013-08-17 21:08:45 1047
原创 纹理 图像格式
Direct3D支持的图像文件格式有:■ 联合图像专家组(.jpg)■ Windows位图(.bmp)■ 光栅图像文件存储格式(.tga)■ 可移植的网络图像文件格式(.png)■ 直接绘图表面格式(.dds)■ 可移植的像素映射格式(.ppm)■ Windows设备无关位图格式(.dib)■ 高动态范围格式(.hdr)■ 可移植的浮点映射格式(.pfm)
2013-08-17 20:02:35 1620
原创 创建物体
HRESULT WINAPI D3DXCreateTeapot( LPDIRECTD3DDEVICE9 pDevice, LPD3DXMESH* ppMesh, LPD3DXBUFFER* ppAdjacency ); 如同程序清单3.1所示,pDevice是Direct3D设备对象,ppMesh是一个指向LPD3DXMESH对象的指针,LPD3D
2013-08-17 18:06:01 1322
转载 VS2010 语法错误: 标识符“__RPC__out_xcount_part” 解决方法
错误类型1:环境:VS2008语言:C++ 下午出了一个非常可恶的问题,我的一个基于MFC 对话框的程序因为预编译头文件stdafx.h的原因始终无法编译通过。 由于程序整体是需要预编译头文件的。因此工程内所有cpp文件通通都包括了#include stdafx.h。 我自己写的文件放在工程文件夹下自建的一个文件夹里。比如工程名DynamicPath
2013-08-17 16:16:26 1642
转载 用VS2010建了一个默认的MFC应用程序,编译后出现如下错误。
用VS2010建了一个默认的MFC应用程序,编译后出现如下错误。1>------ 已启动生成: 项目: Test, 配置: Debug Win32 ------1> stdafx.cpp1>c:/program files/microsoft sdks/windows/v7.0a/include/objidl.h(11280): error C2061: 语法错误: 标识符“__R
2013-08-17 16:10:18 2156
原创 模板
/* Demo Name: Template*/#include#include#pragma comment(lib, "d3d9.lib")#pragma comment(lib, "d3dx9.lib")#define WINDOW_CLASS "UGPDX"#define WINDOW_NAME "Template"#define WINDOW
2013-08-17 11:23:32 799
原创 渲染图元及投影
画三角形bool InitializeObjects(){ // Fill in our structure to draw a triangle. // x, y, z, color. stD3DVertex objData[] = { { 320.0f, 150.0f, 0, 1, D3DCOLOR_XRGB(255, 255, 0), }
2013-08-17 10:54:08 1953
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人