- 博客(35)
- 资源 (4)
- 收藏
- 关注
转载 游戏开发资料
from http://wgcode.iteye.com/blog/810134 Game Developer Magazine 1994 - 2000年,共7年的游戏开发者杂志电子版(含源码)Graphics Programming Black Book (by Michael Abrash),图形编程黑书,Id software的Michael Abrash编著Game
2013-09-26 15:43:50 3257
原创 单链表倒序
这道题目有两种算法,既然是要反转,那么肯定是要破坏原有的数据结构的:算法1:我们需要额外的两个变量来存储当前节点curr的下一个节点next、再下一个节点nextnext:public static Link ReverseLink1(Link head){Link curr = head.Next;Link next = null;Link nextnext = null
2013-09-17 00:46:42 2232
翻译 网游中的物理
网游中的物理2012-03-05 18:29 3735人阅读 评论(1) 收藏 举报网游服务器游戏input网络float网游中的物理作者:Glenn Fiedler译者:trcj原文:http://gafferongames.com/game-physics/networked-physics/ 引言 大家好,
2013-09-14 16:36:08 1386
原创 Unity3D占用内存太大的解决方法
Unity3D占用内存太大的解决方法最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化.Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一
2013-09-13 14:39:26 1897
转载 3d坐标变换
要谈坐标系变换,那么坐标系有哪些呢?依次有:物体坐标系,世界坐标系,相机坐标系,投影坐标系以及屏幕坐标系.我要讨论的就是这些坐标系间的转换。 这些坐标系不是凭空而来,他们都是为了完成计算机3D图形学最最最基本的目标而出现. 计算机3D图形学最最最基本的目标就是:将构建好的3D物体显示在2D屏幕坐标上. 初看好像就是将最初的物体坐标系转换到屏幕坐标系就可以了呀,为
2013-09-12 23:11:08 1911
转载 unity常见问题
1:天空盒有接缝怎么解决?答:在贴图导入设置里设置Wrap Mode为"Clamp".2:DDS格式怎么不显示?答:Unity不支持DDS格式,Unity会将除DDS外的其他格式图片具有为DDS同样的优化.3:Unity如何动态载入外部模型等文件?答:可以使用AssetBundle:http://unity3d.com/support/documentation/Scr
2013-09-12 20:10:52 2123
转载 数组、链表、Hash
QQ数据结构J# 在程序中,存放指定的数据最常用的数据结构有两种:数组和链表。 数组和链表的区别: 1、数组是将元素在内存中连续存放。 链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。 2、数组必须事先定义固定的长度,不能适应数据动态地增减的情况。当数据增加时,可能
2013-09-12 09:05:39 5973
转载 游戏常用算法
算法一:A*寻路初探译者序:很久以前就知道了A*算法,但是从未认真读过相关的文章,也没有看过代码,只是脑子里有个模糊的概念。这次决定从头开始,研究一下这个被人推崇备至的简单方法,作为学习人工智能的开始。这篇文章非常知名,国内应该有不少人翻译过它,我没有查找,觉得翻译本身也是对自身英文水平的锻炼。经过努力,终于完成了文档,也明白的A*算法的原理。毫无疑问,作者用形象的描述,简洁诙谐的语言由浅
2013-09-11 12:50:51 20659 1
转载 A*算法详解(转)
A*算法详解(转)第一部分:A*算法简介 写这篇文章的初衷是应一个网友的要求,当然我也发现现在有关人工智能的中文站点实在太少,我在这里 抛砖引玉,希望大家都来热心的参与。 还是说正题,我先拿A*算法开刀,是因为A*在游戏中有它很典型的用法,是人工智能在游戏中的代表。 A*算法在人工智能中是一种典型的启发式搜索算法,为了说清楚
2013-09-06 12:04:09 1103
转载 BSP FSP
本博客前面文章已对图有过简单的介绍,本文主要是重点介绍有关图的一些具体操作与应用阅读本文前,可以先参考本博客 各种基本算法实现小结(四)—— 图及其遍历 和 图的一些基本算法 无向图——邻接矩阵的深度优先和广度优先算法实现 测试环境:VS2008(C) [cpp] view plaincopyprint?#include "st
2013-09-05 09:24:59 1190
转载 二叉树
二叉树的遍历是指按照一定次序访问二叉树中的所有节点,且每个节点仅被访问一次的过程。是最基本的运算,是其他运算的基础。 二叉树有两种存储结构:顺序存储和链式存储 顺序存储: (对完全二叉树来说,可以充分利用存储空间,但对于一般的二叉树,只有少数的存储单元被利用)[cpp] view plaincopyprint?typedef struct
2013-09-05 09:12:35 944
转载 阴影体
转自http://blog.donews.com/yyh/archive/2005/05/19/387143.aspx前言:真实的游戏效果shadow volume 这个术语几乎是随着 DOOM3 的发布而成为FPS 玩家和图形学爱好者谈论的对象的。虽然这个游戏还没有上市,但是凭借 John Carmack 的传奇经历以及 DOOM3发布的一些让人惊讶的预览图片,我们仍然有理由认为它将
2013-09-05 08:44:11 1139
原创 八大排序
插入排序1.直接插入排序原理:将数组分为无序区和有序区两个区,然后不断将无序区的第一个元素按大小顺序插入到有序区中去,最终将所有无序区元素都移动到有序区完成排序。要点:设立哨兵,作为临时存储和判断数组边界之用。实现:Void InsertSort(Node L[],int length){Int i,j;//分别为有序区和无序区指针for(i=1;i{
2013-09-05 08:06:11 1140
转载 渲染流程
(注:【D3D11游戏编程】学习笔记系列由CSDN作者BonChoix所写,转载请注明出处:http://blog.csdn.net/BonChoix,谢谢~) 3D图形学研究的基本内容,即给定场景的描述,包括各个物体的材质、纹理、坐标等,照相机的位置及朝向,光源等信息,计算其最终在二维的光栅化显示器上对应的显示结果。从最初的场景描述到最终的显示结果,这整个过程就是在3D渲染
2013-09-04 22:29:07 13158 1
原创 链表
1、在一个链表中删除另一个链表中的元素。 1void delete(List m, List n) { 2 if(!m || !n) return; 3 List pre = new List(); 4 pre.next=m;
2013-09-04 20:30:13 871
原创 string
1、反转一个字符串。 1 void reverse( char * str) { 2 char tmp; 3 int len; 4 len = strlen(str);
2013-09-04 20:23:35 787
原创 一些 空间定义
Local Space --> World Space --> View Space --> Backface Culling --> Lighting --> Clipping --> Projection --> Viewport Space --> Rasterization Local Space(本地空间):本地空间以叫建模空间,这是我们定义物体三角形列的坐标系。
2013-09-04 20:08:51 991
转载 view matrix 计算
一、列主序(OPENGL)和行主序(Direct3D)在计算ViewMatrix之前先讲明列主序(OPENGL)和行主序(Direct3D),搞清楚这个,理解算法程序会很有帮助。1.矩阵在内存中的存储 不管是D3D还是OpenGL,使用的矩阵都是线性代数标准的矩阵,只是在存储方式上有所不同。分别为:行主序(Direct3D),列主序(OpenGL) 存储顺序说明
2013-09-04 19:48:12 1599
转载 渲染管线
关于渲染管线将什么呢?无非就是在OpenGL的管道当中各个部分的功能以及如何在管道当中形成了我们想要的最终的一幅图.(像素).而管线当中的操作可分为以下几个部分: 阶段1. 指定几何对象. 如:点 线 三角形.等一些几何图元..OpenGL绘制几何图元的方法有以下三种: 一次一个顶点.即使用glBegin() glVertex() glEnd() 指定几何对
2013-09-04 17:19:21 1603
原创 opcv学习日志 7 光照
OpenGL至少会支持8个光源。 在物理学中,光线如果射入理想的光滑平面,则反射后的光线是很规则的(这样的反射称为镜面反射)。光线如果射入粗糙的、不光滑的平面,则反射后的光线是杂乱的(这样的反射称为漫反射)。现实生活中的物体在反射光线时,并不是绝对的镜面反射或漫反射,但可以看成是这两种反射的叠加。对于光源发出的光线,可以分别设置其经过镜面反射和漫反射后的光线强度。对于被光线照射的材质,
2013-09-04 16:49:23 1064
原创 opvc 学习日志6 单缓冲 双缓冲
虽然绝大多数平台都支持双缓冲技术,但这一技术并不是OpenGL标准中的内容。OpenGL为了保证更好的可移植性,允许在实现时不使用双缓冲技术。当然,我们常用的PC都是支持双缓冲技术的。要启动双缓冲功能,最简单的办法就是使用GLUT工具包。我们以前在main函数里面写:glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE); 其中GLUT_SIN
2013-09-04 16:08:49 948
原创 opcv学习日志 5 几何变换2 三维变换 垂直同步
假设当前矩阵为单位矩阵,然后先乘以一个表示旋转的矩阵R,再乘以一个表示移动的矩阵T,最后得到的矩阵再乘上每一个顶点的坐标矩阵v。所以,经过变换得到的顶点坐标就是((RT)v)。由于矩阵乘法的结合率,((RT)v) = (R(Tv)),换句话说,实际上是先进行移动,然后进行旋转。即:实际变换的顺序与代码中写的顺序是相反的。由于“先移动后旋转”和“先旋转后移动”得到的结果很可能不同,初学的时候需要特别
2013-09-04 15:26:36 911
原创 OpenGL代码段
OpenGL允许为同一多边形的不同顶点指定不同的颜色。例如:#include const GLdouble Pi = 3.1415926536;void myDisplay(void){ int i; // glShadeModel(GL_FLAT); glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_
2013-09-04 15:06:42 745
原创 OpenGL镂空
glClear(GL_COLOR_BUFFER_BIT); glEnable(GL_POLYGON_STIPPLE); glPolygonStipple(Mask); glRectf(-0.5f, -0.5f, 0.0f, 0.0f); // 在左下方绘制一个有镂空效果的正方形 glDisable(GL_POLYGON_STIPP
2013-09-04 14:56:24 1929
转载 骨骼蒙皮动画(Skinned Mesh)的原理解析(一)
骨骼蒙皮动画(Skinned Mesh)的原理解析(一) 一)3D模型动画基本原理和分类 3D模型动画的基本原理是让模型中各顶点的位置随时间变化。主要种类有Morph动画,关节动画和骨骼蒙皮动画(Skinned Mesh)。从动画数据的角度来说,三者一般都采用关键帧技术,即只给出关键帧的数据,其他帧的数据使用插值得到。但由于这三种技术的不同,关键帧的数据是不一样的。
2013-09-04 10:23:42 1489
原创 opcv学习日志4 光栅
几何变换的光栅方法: 光栅系统的特殊功能为特定的二维变换提供了另一种方法。光栅系统将图像信息作为颜色图案存储在帧缓冲器种。因此只需很少的算术操作。 光栅操作:控制矩形像素数组的光栅功能通常称为光栅操作。 块移动:将一块像素从一个位置移动到另一个位置的过程。 图形软件中通常包含完成某些光栅操作的子程序。
2013-09-03 21:06:18 1042
原创 opcv学习日志三 几何变换 1
几何变换也可称为建模变换。 我们利用扫描算法,可以将凸缘显示在光栅设备。 建模变换一般用于构造厂家或给出由多个部分组合而成的复杂对象的层次描述。 有些图形系统提供2套变换子程序,而其他一些软件包则提供一套能同时用于几何变换和建模变换的函数。 平移,旋转,缩放是所有图形软件包中都含有的几何变换函数。其他可能包括在图形软件包中的变换
2013-09-03 15:50:02 1079
原创 opcv学习日志二 输出图元及属性
图形输出原语graphic output primitive 简称为图元:图形软件包中用来描述各种图形元素的函数。 描述对象几何要素的输出图元一般称为几何图元。 点的定位和直线段是最简单的几何图元。 通过将场景信息传给观察函数、由观察函数识别可见面、将对象映射到视频监视器上来实现对象的显示。 扫描转换过程将颜色值等场景信息保存到帧缓存的响应的位置,从而在输出设
2013-09-03 01:54:55 878
原创 opcv学习日志一
头文件: 我们实用GLUT处理窗口管理操作,不需要引入gl.h和glu.h,因为GLUT保证了正确的引入。 我们可以实用 #include 此外,我们总引入c++程序锁需要的头文件。 #include #include #include 对于新c++标准,头文件前加
2013-09-03 00:19:24 1408
转载 已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。
现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数。分析:设数A出现次数超过一半。每次删除两个不同的数,在剩余的数中,数A出现的次数仍超过一半。通过重复这个过程,求出最后的结果。这个题目与编程之美中寻找水王相同 [cpp] view plaincopy#include using namespa
2013-09-02 20:29:46 968
转载 屏幕自适应
屏幕自适应NGUI可以比较方便的实现屏幕自适应,但是它的官方教程里面针对这个问题没有详细的教程,所以可能在实现的时候会走比较多的弯路。以下是我在开发过程中找到的一个比较方便的实现方法。主要组件1. UIAnchor这个是用来确定控件在屏幕中的位置,另外有一篇教程专门讲它的功能,所有不会再赘述2. UIStretch这个是用来做缩放的组件。老版本的
2013-09-02 11:59:56 951
原创 一个项目的部分代码
MissileController:using UnityEngine;using System.Collections;public class missileController : MonoBehaviour { public AudioClip missileClip; public AudioClip explosionClip; // Use this f
2013-09-02 00:54:25 1002
转载 Unity3D实用工具汇总
Unity3D实用工具汇总 1. Free Shader editor 免费shaser编辑器 http://forum.unity3d.com/threads/56180-Strumpy-Shader-Editor-Beta-3.0-released-%28vertex-lighting-support%29 2. Commercial Shader Editor 商业shader编
2013-09-01 17:49:40 3829
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人