自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

爱冒险的技术宅

这就是我对待梦想的态度.

  • 博客(444)
  • 资源 (56)
  • 收藏
  • 关注

原创 碰撞检测之Ray-Capsule检测

Capsule的射线检测和Cylinder的类似,只是把上下两个面换成了两个半球,代码上稍作区别即可。Capsule类型定义 public class Capsule : NGeometry { public Vector3 p0; public Vector3 p1; public float radius; public

2016-02-27 02:15:59 3165 1

原创 碰撞检测之Ray-Cylinder检测

正交基和标准正交基首先来看定义Let S = {v1, v2, ... , vk} be a set of vectors in Rn, then S is called an orthogonal if         vi . vj=0for all i not equal to j. An orthogonal set of vectors is called orthonormal if

2016-02-26 02:13:18 6657 5

原创 碰撞检测之Ray-Box检测

两个凸包多边形,当且仅当存在一条线,这两个多边形在这条线上的投影不相交,则这两个多边形也不相交

2016-02-23 02:27:37 5090 3

原创 碰撞检测之Ray-Sphere检测

最近要开一个物理相关的系列,首先整理总结一下去年写的一些东西,然后看能不能撸一个物理引擎出来。射线检测在之前写光线追踪的时候有写过一些,但当时写得都比较简单,恰好最近工作上又要用到这些,所以就好好来写写。

2016-02-22 00:46:10 4303 5

原创 C#中的继承与多态还有接口

简单继承最简单的三个类public class Animal { public Animal() { Debug.Log("Construct Animal!"); }}public class Mammal : Animal { public Mammal() { Debug.Log("Construct Mamal!")

2016-02-11 17:35:58 4943

原创 用C++实现一个Quaternion类

提要四元素是游戏开发中常用的用于处理旋转的数学工具,下面就用C++来实现一个四元素类。参考Unity中四元素的接口。如果没有看之前的 彻底搞懂四元数, 建议先看一下。代码清单Quaternion.h#pragma once#include "Vector3.h"#include "Mathf.h"class Quaternion{public: Quaternion(float x,

2015-12-24 00:04:15 9871 2

原创 在Unity中接入Xbox360手柄

提要本文主要介绍了如何在Unity中接入Xbox360的手柄。当我们调Input.GetAxis("Horizontal"),我们调了什么Unity中所有关于输入的设置都在Edit -> Project Setting -> Input里面,点开之后,Inspector面板中就会显示当前的输入设置。几个重要选项的含义有:GravityHow fast will the input recenter

2015-12-19 23:15:28 12662 2

原创 用C++实现一个Log系统

提要最近在写一些C++的图形代码,在调试和测试过程中都会需要在终端打印一些信息出来。之前的做法是直接用std::cout这样做其实非常的麻烦,每次都要打很多的字母还有特殊符号,除去我要打印的内容,还需要按下28下键盘,简直不能忍!参考Unity里面的打log的方式Debug.Log("Some Word");或者Qt中的处理方式qDebug() 这两种都方便太多。今天要实现的Log系统需要满足的特

2015-12-13 01:14:43 5144 4

翻译 使用Blender创造一个Low Polygon 插画

原文链接 :Secrets to Creating Low Poly Illustrations in Blender近年来,Low Poly 风格的插画越来越流行,不管是在书本,漫画,音乐剧,应用等等。今天你将学会如何使用Blender创建一个Low Poly的插画。这篇教程将会专注于如何到达这种风格,而不是教一些插画理论或者如何建模之类的。我们将要创建一个范例的插画,一步步来达到我们想要的效果

2015-11-22 11:36:27 11440 5

原创 TPS相机及相机遮挡的一些处理方法

提要第三人称相机有非常多种,今天要实现的一个第三人称射击游戏的相机。如果对相机控制不是很了解,建议看一下上一篇博文 FPS相机。控制思路鼠标控制yaw和pitch,添加一个distance变量来记录角色和相机之间的距离。通过yaw和pitch来得到相机的position。最后添加一个向右的位移和向上的位移量,将角色放在屏幕偏左边的位置。transform.localEulerAngles = ne

2015-11-07 21:34:19 6380 1

原创 FPS相机

提要FPS常用于FPS游戏中,Minecraft默认的视角也是第一人称的。在网上招了半天也没有找到比较好的现成的,还是自己写好了。相机建模不管是FPS相机还是TPS的相机,都包含了相机的两个操作,Yaw和PitchRoll在一些特殊情况下才会出现,比如角色死亡。理论上只要只要Camera的position,yaw,pitch, roll,fov,就可以确定一个Viewport了。角色结构角色的层次

2015-11-07 21:29:25 6061 1

原创 从零开始写游戏引擎(一) - 工程创建以及目录设置还有版本控制

一句话提要好的开始等于成功了一半。创建目录结构工程文件夹下最好分为下面几个目录Docs - 开发文档,设计文档Assets - 角色,动作,模型和音效等Source - 代码,工程文件或者makefile也放在这里,如果有引用第三方的lib,在里面建立一个3rdParty的目录,放在里面。Temp - 用于防止编译生成的文件Lib - 放置编译好的lib文件,将source编译成lib能够更好地保

2015-07-28 08:22:53 3483

原创 Marching squares & Marching cubes

提要Marching squares 主要是用于从一个地图(用二维数组表示)生成轮廓的算法。Marching cubes则对应的是在空间生成网格的方法。最常见的应用就是天气预报中气压图的生成,还常用于随机地形的生成。Marching squares 先说算法步骤。(1) 输入是一个Scalar grid,它是一张二维的表。这张表可以从一张二维图像生成,也可以从高度图生成等等。每个顶点对应一个Sca

2015-07-25 12:57:04 15630 8

原创 CellularAutomation(细胞自动机)

CellularAutomation(细胞自动机)细胞自动机(英语:Cellular automaton),又称格状自动机、元胞自动机,是一种离散模型,在可算性理论、数学及理论生物学都有相关研究。它是由无限个有规律、坚硬的方格组成,每格均处于一种有限状态。整个格网可以是任何有限维的。同时也是离散的。每格于t时的态由 t-1时的一集有限格(这集叫那格的邻域)的态决定。 每一格的“邻居”都是已被固定的

2015-07-22 22:33:43 12643 1

原创 两天学会DirectX 3D之第二天

提要前几天很简单地跑了一个DirectX 9 程序,以为DirectX就那么绘制,事实证明有点Naive了。之前的那个程序最多也就是个固定流水线的东西。但是今天要用DirectX11来写一个小的框架。龙书就不要看了,看Introduction to 3D GAME PROGRAMMING WITH DIRECTX®11几个重要的类ID3D11Device : 一个虚拟适配器;它被用于运行渲染和创建

2015-07-20 00:48:50 4088

原创 两天学会DirectX 3D之入门

环境配置以及背景知识环境 Windows 8.1 64bit VS2013 Microsoft DirectX SDK (June 2010) NVDIA Geforce GT755环境的配置参考 VS2008整合DirectX9.0开发环境一些背景知识 DirectX的和应用层与硬件层的关系如下REF设备允许开发人员测试那些Direct3D提供了但未被图形设备所实现的功能。COM(Compone

2015-07-05 11:32:04 6769

原创 Stencil buffer

模版缓冲(stencil buffer)或印模缓冲,是在OpenGL三维绘图等计算机图像硬件中常见的除颜色缓冲、像素缓冲、深度缓冲之外另一种数据缓冲。词源模版(stencil)是指一种印刷技术,通常以蜡纸或者钢板印刷文字或图形;区别于模板(template),用木板为外形修剪的依据来复制形状;模版(stencil)是指印模,而模板(template)主要是指形模。模版缓冲是以像素为单位的,整数数值的缓冲,通常给每个像素分配一个字节长度的数值。深度缓冲与模版缓冲经常在图形硬件的随机存取内存(RAM)中分享相同

2015-06-24 20:40:46 11206

原创 基于BRDF的光照模型

知识预备光亮度是物体表面某方向单位投影区域单位立体角的光流量沿着某条光线的光亮度是常数,但光通量随距离增大而衰减(实际是二次衰减,但在计算机图形学中采用线性衰减效果比较好)光强度是单位立体角的辐射能量辐射度是单位面积流出的光通量辐照度是单位面积流入的光通量它们的关系:光强度=光亮度*单位面积*入射角余弦辐照度=光亮度*入射角余弦*单位立体角辐射度=光亮度*入射角余弦*单位立体角(但方向不同)BRD

2015-06-19 09:18:55 13493 2

原创 Shading中的插值技术

在Per Vertex shader中处理着色计算的情况计算出的是每个顶点上shading的结果,通常模型都是由三角面来构成,面上的颜色如何处理,就是今天要探讨的。常用的三种方法是Flat Shading, Gouraud Shading, Phong Shading,对于渲染一个小球,结果对比如下,从左到右依次是Flat Shading, Gouraud Shading, Phong Shading。

2015-05-28 23:25:47 10117 2

原创 重心座标插值(Barycentric Interpolation)

提要       重心座标插值在图形学领域有着很重要的应用,比如Ray Tracing算法的ray - triangle intersection 检测,比如有限元模拟中的模型简化等。一维情况      从最简单的开始,一个线段:如何表示p点的值?可以这样想,p总是在x1和x2之间徘徊,不知道如何选择,蓝色线段的长度t表示p对x2的喜爱程度,红色线段(1-t)表示对x1的喜爱程度。那么P点的值就可

2015-05-28 20:29:33 17837 7

原创 Android Studio 初探

Android Studio 简介Android Studio 是Google近年来推荐的Android开发IDE,相对于Eclipse,它针对Android开发做了各种走心的优化,并提供了一系列方便的小工具。下面来体验一下。‘环境:Windows 8.1  64bitGiONEE C605下载&调教下载完双击一路下一步就可以了。调教方面主要是主题和字体设置。相关的设置都在 File->setti

2015-05-28 15:52:03 1831

原创 局部光照模型及其BRDF

提要常见的光照模型一般包括四个部分ambient, diffuse, specular, 和emitted light. 即:vertex color = ambient + diffuse + specular + emitted light当有多个光源的时候,最后的颜色就是多个结果的叠加。Ambient light:环境光,通常定义在光源的中,注意每个光源的衰减量。Diffuse:漫反射部分,

2015-05-28 15:12:08 12325

原创 UV动画/纹理融合/法线贴图/过程纹理

让VS支持Shaderlab语法VS2013中并没有Shaderlab的语法高亮,好在网上已经有个插件来支持语法的高亮和拼写提示,从这里下载插件,双击安装就好了。ShaderlabVS - https://github.com/wudixiaop/ShaderlabVS/releases不过由于VS配色的关系,还需要微调一下,按下面步骤1. 打开 VS -> 工具 -> 选项 -> 环境 -> 字

2015-05-10 15:10:55 7011 2

原创 Unity3D中的Post effects

提要所谓post effects,就是后处理,在渲染的流水线中属于最后的阶段,处理的对象是由场景生成的一张图片。常见的后处理效果有HDR,Motion Blur等,通过对屏幕空间的后处理,可以很方便的调整游戏整体的风格。基本步骤主要思路就是首先1)将摄像机的RenderTexture传递到Shder里面,Shader在GPU中进行计算,然后2)再将处理后的图片传递回来。第一步需要用C#脚本来处理,

2015-04-24 22:19:49 12341

原创 IEnumerator/ IEnumerable/ yield return/ StartCoroutine 详解

IEnumerator/ IEnumerablepublic interface IEnumerable { IEnumerator GetEnumerator(); } public interface IEnumerator { bool MoveNext(); void Reset(); Object Curre

2015-04-20 14:07:20 5285

原创 Forward Render VS Deferred Rendering

Forward Render传统的渲染方式,你提供给显卡形状Mesh,它将其打散成一堆节点,接着经过一系列的变换和分割成为Fregment或者像素,在呈现在屏幕之前已经完成了所有的渲染处理。这是相当线性的,每一个形状都会在生成完整图像之前经过流水线的每一个阶段。Deferred Rendering中文称为延迟渲染,渲染的工作被放在最后,直到所有的形状到都完成了前面的工作,一旦所有需要的缓冲建好,就

2015-04-12 15:14:31 11234

原创 Unity3D游戏开发从零单排(十) - 进击的Shader续

自定义光照模型在这之前首先来了解一下SurfaceOutput这个结构体,它是一个包含大多数描述一个物体表面渲染特征的结构,具体结构如下:struct SurfaceOutput { half3 Albedo;//纹理颜色 half3 Normal;//法线 half3 Emission;//自发光,不受照明的影响 half Specular;//高光指数 half Gloss;//光泽

2015-04-11 21:58:26 2963 3

原创 游戏交互设计入门

参考阐述手机游戏用户界面设计的8大步骤 - http://gamerboom.com/archives/53747阐述熟悉感对电子游戏界面的重要性 - http://gamerboom.com/archives/60362分析高收益手机游戏的美术设计特点 - http://gamerboom.com/archives/73534保留功能性应是游戏UI设计首要考虑因素 - http://gamerb

2015-04-11 00:36:46 10013 1

原创 Free Image简单使用

FreeImage简介FreeImage is an Open Source library project for developers who would like to support popular graphics image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia appl

2015-03-04 16:55:57 11299 2

原创 Post-processing in Ogre

什么是 Post-processing首先看一下一个典型的Renderring

2015-03-03 10:22:34 3334

原创 基于Ogre的角色控制器

基本框架首先参照这里配置好工程。添加一个类CharacterApplication,还有main.cpp.直接贴代码了。characterapplication.h#pragma once#include #include #include #include #include #include #include #include #include #include #incl

2015-02-25 11:56:30 2176 1

原创 Windows编译Ogre1.10

提要环境:Windows8.1 VS2013Ogre1.9.0编译工程就不多说了,从bitbucket上下载好1.9的源码,cmake一下,release和debug都编译一遍就可以了。确保samplebrowser能运行之后,设置一下OGRE_PATH环境变量,将其设置为源码的目录.今天写的代码主要是为了熟悉VS下OGRE的编程。Linux老版本的参考这个:  菜鸟也学Ogre-超级打地鼠创建工

2015-02-07 20:31:33 4823 1

原创 OpenGL进阶(十九) - 多光源

从光说起先看一段wiki中对光的定义光是一种人类眼睛可以见的电磁波(可见光谱),视知觉就是对于光的知觉[1]。光只是电磁波谱上的某一段频谱,一般是定义为波长介于400至700纳米(nm)之间的电磁波,也就是波长比紫外线长,比红外线短的电磁波。有些资料来源定义的可见光的波长范围也有不同,较窄的有介于420至680纳米,较宽的有介于380至800纳米。光既是一种高频的电磁波,又是一种由称为光子的基本粒

2015-01-16 11:22:56 5324 1

原创 发布Qt项目

环境VS2013Qt 5.3 VS2013 OpenglWindows 8.1Photoshop CC图标制作首先绘图工具中设计好图标,我这里用的ps。创建的工程分辨率最好是512 * 512或者256 * 256。画好之后导出png,待用。图标需要用*ico的文件,ps不支持导出这种格式,可以通过添加插件的形式搞定,但是我没有找到对应版本的插件,所以这里用个比较偷懒的方法。去这个网站 - htt

2015-01-05 11:10:51 2538

原创 Qt中显示复杂列表

提要最近想要完成的一个项目需要显示一个列表

2014-12-17 21:47:41 11872 3

原创 Qt中截图功能的实现

提要需求:加载一张图片并显示,可以放大缩小,可以截取图片的某个矩形并保存。原以为蛮简单的一个功能,其实还是有点小复杂。最简单Qt图片浏览器可以参考Qt自带的Demo:Image Viewer Example - http://qt-project.org/doc/qt-4.8/widgets-imageviewer.html看一下最终的实现效果:图片的加载显示这里需要实现一个QImageViewe

2014-12-17 21:35:59 11538 5

原创 Qt中绘制蚂蚁线

提要如果有用过PS的选区工具应该就会知道蚂蚁线是什么东西了,就是用来表示选区的一种虚线,关键还是要动态的!Qt 中自带的一个例子就有各种描边的演示,但是最终达到的效果只能是一个静态的描边,根本不够炫酷,So.还是自己来实现以下。先看下最终的结果:是可以动起来的哈,只不过截图是静态的。最终实现的效果和PS中的选区工具完全一样。分析输入一个QRect输出动态的黑白相间的蚂蚁线描边。(注意是黑色和白色,

2014-12-03 17:14:47 4935 3

原创 GPS坐标转笛卡尔坐标

提要我们知道GPS坐标是由经度,纬度,海拔组成,精度和纬度都是角度,海报是高度。在进行基于地理的搜索的时候,常用到KDTree,在构建在KDTree的时候,不能直接用GPS的坐标,要将GPS坐标转换成笛卡尔坐标才能用于构建KDTree。下面就是相关的转换算法。注:GPS信息由几种标准,这里的采用的是google map的经纬度信息。js实现geodecy.js/* geod

2014-11-28 16:12:57 12455 4

原创 详解KDTree

简介kd树(k-dimensional树的简称),是一种分割k维数据空间的数据结构。主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索)。一个KDTree的例子上图的树就是一棵KDTree,形似二叉搜索树,其实KDTree就是二叉搜索树的变种。这里的K = 3.首先来看下树的组织原则。将每一个元组按0排序(第一项序号为0,第二项序号为1,第三项序号为2),在树的第n层,第 n%3 项被用粗

2014-11-26 16:51:42 82935 22

翻译 基于Qt的图像处理技术和算法

原文链接: http://developer.nokia.com/community/wiki/Image_editing_techniques_and_algorithms_using_Qt

2014-11-19 17:08:44 27320 4

OpenGLPro12

OpenGLPro12 代码

2013-08-17

stanford_bunny

The bunny was bought and scanned in 1993-94. The color photograph (above) was taken on April 1, 2003. The bits of gray plaster on the sides of the bunny's feet somehow appeared since the bunny was scanned; they are not present in the 3D model. The chip on his left ear, however, is present in the model as well, although degraded in resolution.

2013-08-17

Android lOADER

Android 3DS MD2 加载

2013-08-10

SDL+OpenGL+GLSL

SDLFramework1.1

2013-08-07

Radiation glsl

Radiation glsl

2013-08-07

SDLPro10

SDLPro10

2013-08-02

SDLFramework

SDLFramework for OpenGL in C++.

2013-08-02

glm-0.9.4.4

glm-0.9.4.4

2013-08-01

百度定位demo

百度定位demo

2013-05-03

nerdtree文件浏览插件

vim 下的文件浏览插件

2013-04-29

GdxTestGame

GdxTestGame

2013-04-24

TestGdxGame

TestGdxGame

2013-04-22

faenza-icon-theme

faenza-icon-theme

2013-03-12

Android仿苹果的自定义galleryDemo

Android仿苹果的自定义galleryDemo

2013-03-03

滑动fregmentDemo

滑动fregmentDemo

2013-03-03

mupdf 浏览器

mupdf 浏览器

2013-02-27

readline

readline5_5.2

2013-02-24

YaHei.Consolas

YaHei.Consolas.1.11b.ttf

2013-02-24

OpenGL 分形入门

OpenGL 分形入门 康托集 Koch雪花 OpenGL 分形入门 康托集 Koch雪花 OpenGL 分形入门 康托集 Koch雪花

2012-12-29

OpenGL粒子系统

OpenGL 粒子系统 C/C++

2012-12-29

openGL中的物理模拟

openGL中的物理模拟

2012-12-21

光线追踪算法C++实现

光线追踪算法C++实现

2012-11-17

词典数据库

词典数据库

2012-10-01

Axsure快速原型设计

Axsure快速原型设计

2012-09-24

Unity3d的shader学习

Unity3D游戏开发从零单排(八) - Shader基础

2014-09-26

Unity3D的 Shader例子

Unity3D游戏开发从零单排(八) - Shader基础 - http://blog.csdn.net/silangquan/article/details/39576477

2014-09-26

Unity3D地形文件

Unity3D 地形

2014-04-27

xvidcap_amd64.deb

xvidcap_amd64.deb

2014-03-07

3ds max模型导入工具objloader

objloader1.4.1

2014-01-04

Resources_airhockey

Android 双人游戏源码 游戏需要分享才能获得快乐,想想你以前玩过的那些游戏,那些会是真正地存在你婶婶的脑海里?是独自一人躲在被窝里酣战PSP,还是和哥们在网吧一起开黑?是一个人单刷迅龙三连,还是和朋友联机怒刷黄黑龙?

2013-12-28

OpenGLTexture

OpenGLTexture

2013-11-25

GameResources游戏编程

GameResources游戏编程

2013-11-24

基于Qt的图像采集系统

基于Qt的图像采集系统 基于Qt的图像采集系统基于Qt的图像采集系统 基于Qt的图像采集系统 http://blog.csdn.net/silangquan/article/details/11808675

2013-09-18

Android PreferenceFragment

Android Preference Fragment 实例。

2013-09-04

g77_pack g77_pack

the generated directory will contain the following files: cpp-3.4_3.4.6-6ubuntu3_i386.deb g77-3.4_3.4.6-6ubuntu3_i386.deb gcc-3.4_3.4.6-6ubuntu3_i386.deb gcc-3.4-base_3.4.6-6ubuntu3_i386.deb libg2c0_3.4.6-6ubuntu3_i386.deb libg2c0-dev_3.4.6-6ubuntu3_i386.deb install.sh install the g77 package using the following command: sudo ./install.sh

2013-08-28

OpenGLPro13

OpenGLPro13 源码

2013-08-27

mupdf_android_lib

mupdf交叉编译好的.so文件 mupdf是一个开源pdf解析库

2013-08-26

ffmpeg-snapshot

FFmpeg has always been a very experimental and developer-driven project. It is a key component in many multimedia projects and has new features added constantly. Development branch snapshots work really well 99% of the time so people are not afraid to use them.

2013-08-21

xvidcapi386.deb

This site is about xvidcap, a small tool to capture things going on on an X-Windows display to either individual frames or an MPEG video. On Windows machines there are commercial tools like Lotus ScreenCam or Camtasia which do a very good job esp. for the purpose I was needing such a tool for: Software documentation, esp. installation procedures and such.

2013-08-21

Radiation in c++

Radiation in c++

2013-08-15

空空如也

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

TA关注的人

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