自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(95)
  • 收藏
  • 关注

原创 Ogre 3D开发环境配置中遇到的问题(1)

昨天正式开始了OGRE的学习之旅,第一件事肯定就是配置OGRE的开发环境了。我的系统配置为:OS: Win7 X64,Compiler:VS 2010,然后就是百度各种配置方法了,我尝试过1.7和1.8两种版本的OGRE SDK,但OGRE SDK 1.8之前的版本都需要下载依赖库,而且依赖库的版本又是多种多样,在编译依赖库的时候,总是会出现各种各样的编译错误,在辛辛苦苦解决了依赖库的编译问题

2013-07-18 20:19:52 4276 16

原创 从零开始写软渲染引擎

学图形学也有一段时间了,对图形驱动OpenGL也有了基本的理解,但也仅限于API层的了解,图形管线的具体实现对于我来说还是十分抽象的概念,于是就想着自己实现个软件渲染引擎来加深对图形学的理解,但又无从下手。网上也下了不少的开源软渲染引擎,看起来也是相当痛苦。找了很久,居然一点都找不到这方面的教程。直到最近,网上终于有人出了个软渲染引擎的教程,真是万分感谢啊。感谢David Rousset出了这

2014-11-29 13:06:12 4240 7

原创 直线光栅化算法

public void DrawLine(Vector2 point0, Vector2 point1)        {            var dist = (point1 - point0).Length();            if (dist             {                return;                

2014-11-11 00:00:27 1772

转载 万向节死锁(Gimbal Lock)

在三维中常用的欧拉角坐标定向系统是用绕三个轴旋转的角度来表示物体的朝向(Rx,Ry,Rz)(注意三个轴是针对物体坐标系的)。如图1,物体处于世界坐标系(Xw,Yw,Zw)原点,此时物体坐标系(Xl,Yl,Zl)和世界坐标系重合(这里我使用右手坐标系。你也可以使用左手坐标系,无所谓,一样)。此时,规定物体的朝向为(0,0,0)。图1:物体的初始朝向 现在开始旋转物体,

2014-10-20 17:57:36 1511

转载 深入探索透视投影变换(续)

在上一篇文章中我们讨论了透视投影变换的原理,分析了OpenGL所使用的透视投影矩阵的生成方法。正如我们所说,不同的图形API因为左右手坐标系、行向量列向量矩阵以及变换范围等等的不同导致了矩阵的差异,可以有几十个不同的透视投影矩阵,但它们的原理大同小异。这次我们准备讨论一下Direct3D(以下简称D3D)以及J2ME平台上的JSR184(M3G)(以下简称M3G)的透视投影矩阵,主要出于以下几个目

2014-09-13 16:34:30 767

转载 深入探索透视投影变换

透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感

2014-09-12 23:54:21 767

原创 TexturePacker--A great tool!

TexturePacker是一个纹理打包工具

2014-09-11 16:09:10 831

转载 游戏引擎程序员养成

1. c++ Primer 英文版(第四或第五版)全部看完习题做完是必须的。渲染程序设计比较复杂,后期会用到c++的全部特性。c++学的越好后面越轻松。要看英文版,计算机翻来覆去就那么几个单词,基础打好了以后查stack overflow这些网站也方便。2. Introduction to 3D Game Programming with DirectX 11也就是经典的龙书,

2014-08-26 16:11:44 1066

原创 OpenGL直观固管图

Vertex Shader的功能相当于如下代码:for (var i:int = 0; i < vertexBuffer.length; i++){ executeVertexShader(vertexBuffer[i]);}Fragment Shader的功能相当于如下代码:for (var i:int = 0; i < fragmentStream.length; i+

2014-08-23 19:27:29 635

转载 Interpolation and Extrapolation(內插與外插)

插值法(內插與外插)Interpolation and Extrapolation 數學問題探討當我們在表現資料時,常常會有需要比實際量測點上的值更細密的情況,或者是有需要在範圍外預測其值。比方說天氣圖的繪製,不論是氣壓或是雨量,都不可能做到處處都有測量站,又例如我們關心一天之中溫度隨時間的變化,但是實際上記錄氣溫的動作可能只是每小時一次,則我們要作一個連續的圖時,就會用到

2014-08-22 22:24:07 3760

转载 Type Qualifier (GLSL)--GLSL类型修饰词

Storage qualifiersStorage qualifiers define where a variable's storage comes from.DefaultIf no storage qualifier is specified when declaring a global variable, then the variable is just a norm

2014-08-22 20:57:01 2353

转载 GLSL 内置变量

二、顶点处理器     1. 顶点属性       // Vertex Attributes      attribute vec4 gl_Color;      attribute vec4 gl_SecondaryColor;      attribute vec3 gl_Normal;      attribute vec4 gl_Vertex; 

2014-08-22 15:41:42 1079

原创 OpenGL glDrawBuffer()函数

函数glDrawBuffer指示了FBO成员和片断着色器输出变量之间的联系。FBO中的第i个成员对应片断着色器中的索引为i的输出变量。

2014-08-20 20:12:16 3009 1

原创 OpenGL MSAA修饰词

OpenGL中有两个修饰词可以影响MSAA的效果

2014-08-20 16:19:02 910

转载 伽码值(灰度系数)相关

本人翻译,错谬请纠正。1.什么是发光强度?发光强度是这样一种度量,在电磁波谱某些范围从某处辐射的或某表面接收的能量流. 发光强度是所谓的线性光度量,以瓦特/平方米为单位表示。给CRT显示器的电压以非线性的方式,控制色彩分量的发光强度。CRT的电压与发光强度之间不成比例(不是线性关系)2.什么是亮度?亮度由国际颜色委员会定义,根据一个区域发光的多或少而产生的视

2014-08-20 14:15:09 4561

转载 glFinish()和glFlush()函数详解

通常情况下,OpenGL指令不是立即执行的。它们首先被送到指令缓冲区,然后才被送到硬件执行。glFinish和glFlush都是强制将命令缓冲区的内容提交给硬件执行。一、glFinish()函数OenGL手册上关于glFinish:NameglFinish — block until all GL execution is complete

2014-08-20 12:41:20 12288

转载 Sobel算子

由于项目里要用到边缘检测,所以今天研究了一下最简单的梯度的方法。    首先,我们来开一下计算机是如何检测边缘的。以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的变化,为了方便假设由黑渐变为白代表一个边界,那么对其灰度分析,在边缘的灰度函数就是一个一次函数y=kx,对其求一阶导数就是其斜率k,就是说边缘的一阶导数是一个常数,而由于非边缘的一阶导数为零,这样

2014-08-15 16:28:23 1000

原创 OpenGL项目出现错误:error LNK2019: unresolved external symbol _gluErrorString@4

在头文件中加入:

2014-08-13 23:12:36 1549

转载 编译QT项目出现错误:error C2144: syntax error : 'void' should be preceded by ';'

错误如下:C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include\GL/gl.h(1152) : error C2144: syntax error : 'void' should be preceded by ';'C:\Program Files\Microsoft Visual Studio 8\VC\Pla

2014-08-13 23:10:58 4983

转载 A*算法详解

A*算法详解(转)第一部分:A*算法简介    写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里 抛砖引玉,希望大家都来热心的参与。     还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人工智能在游戏中的代表。     A*算法在人工智能中是一种典型的启发式搜索算法,为了说清楚

2014-08-11 19:14:51 817

转载 Unity3d 中的 A*寻路

这篇文章翻译自Unity 4.x Game AI Programming这本书第七章在本章中,我们将在Unity3D环境中使用C#实现A*算法.尽管有很多其他算法,像Dijkstra算法,但A*算法以其简单性和有效性而广泛的应用于游戏和交互式应用中.我们之前在第一章AI介绍中短暂的涉及到了该算法.不过现在我们从实现的角度来再次复习该算法.A*算法复习在我们进入下一部分实现A

2014-08-11 19:07:41 1455

转载 [Unity3D]A*算法、导航网格、路径点寻路对比(A-Star VS NavMesh VS WayPoint)

在Unity3d中,我们一般常用的寻路算法:1.A*算法插件与贪婪算法不一样,贪婪算法适合动态规划,寻找局部最优解,不保证最优解。A*是静态网格中求解最短路最有效的方法。也是耗时的算法,不宜寻路频繁的场合。一般来说适合需求精确的场合。与启发式的搜索一样,能够根据改变网格密度、网格耗散来进行调整精确度。使用较好的地方:

2014-08-11 13:59:16 6206

转载 Visitor 访问者模式

package com.lonton.designpatterns;import java.util.ArrayList;interface Visitor{ public void visit(City city); public void visit(Museum museum); public void viist(Park park);}class FirstTi

2014-08-11 10:46:03 526

转载 Strategy 策略模式

package com.lonton.designpatterns;interface Strategy{ public void processSpeed(int speed);}class NicePolice implements Strategy{ @Override public void processSpeed(int speed) { // TODO A

2014-08-11 10:45:01 519

转载 State 状态模式

package com.lonton.designpatterns;interface State{ public void saySomething(StateContext stateContext);}class Poor implements State{ @Override public void saySomething(StateContext sc) {

2014-08-11 10:43:50 483

转载 Observer 观察者模式

package com.lonton.designpatterns;import java.util.ArrayList;interface Subject{ public void registerObserver(Observer observer); public void removeObserver(Observer observer); public void notif

2014-08-11 10:43:31 491

转载 Proxy 代理模式

package com.lonton.designpatterns;interface SluttyWife{ public void seduceMen(); public void happyWithMen();}class HouseWife implements SluttyWife{ @Override public void seduceMen() { /

2014-08-11 10:42:42 1242

转载 Mememto 备忘录模式

package com.lonton.designpatterns;import java.util.List;import java.util.ArrayList;class Life{ private String time; private List mememtos = new ArrayList(); public void setTime(String time)

2014-08-11 10:42:18 883

转载 Mediator 中介者模式

package com.lonton.designpatterns;interface IMediator{ public void ask(); public void answer(); public void registerA(ColleagueA a); public void registerB(ColleagueB b);}class ConcreteMed

2014-08-11 10:40:29 690

转载 Iterator 迭代器模式

package com.lonton.designpatterns;interface Iterator{ public boolean hasNext(); public Object next();}interface Container{ public Iterator creaIterator();}class RecordCollection implement

2014-08-11 10:39:19 506

转载 Composite 组合模式

package com.lonton.designpatterns;import java.util.ArrayList;interface Component{ public void show();}class Composite implements Component{ ArrayList childComponents = new ArrayList(); p

2014-08-11 10:38:09 482

转载 Command 命令模式

package com.lonton.designpatterns;import java.util.List;import java.util.ArrayList;//Command Interfaceinterface Command{ public void execute();}class ShutdownCommand implements Command{

2014-08-11 10:36:56 552

转载 Chain of Responsibility 责任链模式

package com.lonton.designpatterns;abstract class Chain{ public static int ONE = 1; public static int TWO = 2; public static int THREE = 3; protected int threshold; protected Chain next; p

2014-08-11 10:35:24 469

转载 Prototype 原型模式

package com.lonton.designpatterns;interface Prototype{ void setSize(int x); void printSize(); }class A implements Prototype, Cloneable{ private int size; public A(int x) { size = x; }

2014-08-11 10:33:40 754

转载 Builder 创建者模式

package com.lonton.designpatterns;class Drink{ private String size; private String type; public void setSize(String size) { this.size = size; } public void setType(String type) { this.

2014-08-11 10:31:55 472

转载 Factory 工厂模式

package com.lonton.designpatterns;interface Human{public void Talk();public void Walk();}class Boy implements Human{@Overridepublic void Talk(){System.out.println("Boy

2014-08-11 10:28:01 498

转载 Abstract 抽象工厂模式

package com.lonton.designpatterns;interface CPU{ void process();}interface CPUFactory{ CPU produceCPU();}class AMDCPU implements CPU{ @Override public void process() { // TODO Auto-

2014-08-11 10:27:50 448

转载 Singleton 单例模式

package com.lonton.designpatterns;public class Singleton{ private static final Singleton SINGLETON = new Singleton(); public static Singleton getSingleton() { return SINGLETON; } }

2014-08-11 10:23:56 467

转载 VC编译命令开关

vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关VC 编译命令开关                                       /C:在预处理输出中保留注释语句/c:只编译,不连接,相当于在"Build"菜单下选择了"Compile"/D:定义常量和宏,与源程序里的#define 有相同效果/E

2014-08-06 17:40:52 659

转载 AVX Intrinsics各函数介绍

原文地址:http://blog.csdn.net/fengbingchun/article/details/23598709

2014-08-06 17:24:27 1294

空空如也

空空如也

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

TA关注的人

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