
游戏开发
文章平均质量分 90
拳四郎
拳四郎
展开
-
Post-processing in Ogre
什么是 Post-processing首先看一下一个典型的Renderring原创 2015-03-03 10:22:34 · 3393 阅读 · 0 评论 -
Unity3D游戏开发从零单排(一) - 真机运行(Android和WindowsPhone)
周末不想学习,就来玩一玩Unity3D好了。 本以为网上会有很多关于Unity3D的配置文章,但搜到的要么是iOS的,要么比较 坑爹,所以还是自己来写一篇。 环境:Windows 7 32bit Unity4。原创 2013-08-19 21:53:12 · 9615 阅读 · 0 评论 -
Unity3D游戏开发从零单排(八) - Shader基础
提要 今天要说的是Unity3D中shader相关的一些知识。不会做非常细致的讲解(东西实在太多!- -),但是看完之后会知道shader是怎么用的。一些术语 在shader编程中,有一些术语,有时候不明白的话容易被整懵圈,所以这里就简单提一下。Shading Shading最开始指的在素描中给物体画明暗调子,在图形学中,其实就是给Mesh上色(Mesh就是一堆三角面片,包含顶点左边,原创 2014-09-26 14:52:36 · 3713 阅读 · 2 评论 -
Unity3D游戏开发从零单排(九) - 进击的Shader
提要 今天要学习的是一些Shader 的例子,从简单到难。Let's go.一大波例子来袭还是用上一篇用到的工程。点我下载红色的螃蟹Test1.shaderShader "Custom/Test1" { SubShader { Tags { "RenderType" = "Opaque" } CGPROGRAM #pragma surface surf原创 2014-09-27 00:00:54 · 4289 阅读 · 1 评论 -
Unity3D游戏开发从零单排(六) - 人物运动及攻击连击
提要今天要实现的是一个简单人物控制器。包括用w,a,s,d来控制人物上下左右跑动,鼠标左击发出连招,都是基于老的lagacy的动画。虽然unity3d自带有charactorcontroller,但是并不是很好用,所以人物控制相关的全部自己来实现。先上效果图:场景搭建首先下载这个package,里面包含了人物的动作还有地面的模型。将人物和地面都拖进场景中。这里的模型默认的动画模式是lagacy,不原创 2014-06-12 00:40:21 · 17053 阅读 · 9 评论 -
Unity3D游戏开发从零单排(五) - 导入CS模型到Unity3D
Animator组件和Animation组件和Animator controller这三个东西说起来比较绕,但原创 2014-05-25 10:52:53 · 10634 阅读 · 2 评论 -
Unity3D游戏开发从零单排(三) - 极速创建狂拽酷炫的游戏地形
提要 在Unity工作流程内,地形是一个不可缺少的重要元素,不论是游戏或虚拟现实都会使用到各种类型的地形效果,在这个教学中我们需要了解到地形的制作基本概念与,其中对于Unity的地形操作部分需要大量的操作练习.熟悉这些功能操作之后,相信对于游戏地形的制作与运用将会更得心应手。原创 2014-04-25 23:11:19 · 7833 阅读 · 5 评论 -
Unity3D游戏开发从零单排(四) - 制作一个iOS游戏
欢迎回来!在第一篇中,我们学会了怎么在U翻译 2014-05-19 10:46:47 · 11520 阅读 · 2 评论 -
Unity3D游戏开发从零单排(二) - Roll a Ball
提要本篇是Unity3D 官方Tutorial最简单的一篇 ,没有纹理,没有复杂模型,没有音乐,没有关卡,但作为入门学习还是非常不错的。游戏很简单,就是用键盘的上下左右控制一个小球,获取场景中的所有的方块。下面是个人的一点学习记录。场景搭建创建一个cube作为地面,然后用四个cube作为四个墙。添加一个小球在中央。添加12个0.5*0.5*0.5的方块,Rotation的x,y,z都绕45度。场景原创 2014-03-23 11:30:44 · 4314 阅读 · 0 评论 -
Bullet物理引擎不完全指南 in Linux
Bullet介绍 Bullet的主页 。最新版本在这里下载 。简单的中文介绍见百度百科 。一些也许可以促使你选择Bullet的小故事在以前的文章中有提及,参考这里 的开头--为什么选择Bullet。 主要特征: * 代码用C++构建,遵守zlib开源协议,可免费用于各种商业目的。跨平台支持,包括PS3,XBox 360... * 离散原创 2013-08-03 21:33:34 · 7772 阅读 · 4 评论 -
ubuntu11.10中配置OGRE1.8
在这里提到的版本有点低,但对于Ubuntu11.10+Ogre1.8照样适用。对于Ubuntu 9.10及以上版本:安装编译器及配置工具:sudo apt-get install build-essential automake libto安装必须的依赖:sudo apt-get install libfreetype6-dev libfreeimage-dev lib翻译 2012-08-06 14:17:21 · 2061 阅读 · 0 评论 -
A*寻路算法的优化与改进
Iterative Deepening Depth-first search- 迭代深化深度优先搜索在深度优先搜索中一个比较坑爹情形就是在搜索树的一枝上没有要搜的结果,但是却非常深,甚至深不见底,这样就根本搜索不到结果。为了防止这种情况出现,就出现了Iterative Deepening的思想原创 2014-11-03 21:34:26 · 13502 阅读 · 1 评论 -
Qt下的OpenGL 编程(4)进军3D世界
一、提要 有了前面的基础,我们今天就可以进军3D世界了。 今天我们可以学到的是:在三维空间上建立空间物体,纹理贴图。二、openGL坐标系 OpenGL使用右手坐标,从左到右,x递增,从下到上,y递增,从远到近,z递增。 OpenGL坐标系可分为:世界坐标系和当前绘图坐标系。 世界坐标系以屏幕中心为原点(0, 0, 0)。你原创 2012-08-12 15:49:10 · 12970 阅读 · 8 评论 -
Qt下的OpenGL 编程(7)顶点数组和显示列表
一、提要 OpenGL作为一个高性能的图形接口,性能能肯定是放在第一位的了,现在的移动平台也是OpenGL ES,这对性能的要求就更高了,今天我们要接触到的这两个东西—顶点数组和显示列表都是用于实现高性能绘图的手段。 下一篇教程我打算去做一个一个3D漫游的例子,会用到今天的技术。二、顶点数组 在之前的几篇教程中,有时候绘制一原创 2012-08-17 17:06:23 · 6014 阅读 · 9 评论 -
SDL入门学习续-在SDL中使用OpenGL
配置好SDL之后,就想在SDL中使用openGL,原以为会像在GLFW中那样简单的,实际上确花费了一整个下午不断查看文档,实例才搞定问题。总结如下:1)SDL对OpenGL进行了部分的封装,一些OpenGL的函数需要用SDL来实现,而不是像GLFW中那样直接用;2)SDL的事件机制花费了一些时间来理解;3)在处理OpenGL窗口大小变化的时候,需要先调用SDL_SetVideoMo原创 2012-12-01 19:02:16 · 5656 阅读 · 0 评论 -
C#中常用容器的使用与底层数据结构
从使用的频率一个个来简单说一下。Array/ArrayList/List/LinkedListArray数组在C#中最早出现的。在内存中是连续存储的,所以它的索引速度非常快,而且赋值与修改元素也很简单。string[] s=new string[2]; //赋值 s[0]="a"; s[1]="b"; //修改 s[1]="a1"; 但是数组存在一些不足的地方。在数组的两原创 2016-04-09 21:14:33 · 19495 阅读 · 6 评论 -
Blender中制作一个带纹理的正方体
环境ubuntu12.04 64bitBlender 2.68准备好一张正方形的贴图,比如这个:1.打开blender,默认就有一个我们要的正方体模型原创 2013-11-23 22:46:42 · 13652 阅读 · 3 评论 -
A*寻路算法
A*简介图搜索技术在游戏编程中无处不在,无论什么游戏原创 2014-10-27 20:51:46 · 7297 阅读 · 2 评论 -
Unity3D游戏开发从零单排(七) - NetworkView的Demo
提要 今天做了一个移动设备的网络通信demo,分两个部分,一个是网络连接,一个是数据通信。 需要两台Android设备A,B。A作客户端,B作服务端。 最终的效果是玩家控制设备A中的方块,B中的方块也一起动,同时在A的加速度传感器的信息在B中也实时更新。网络连接 首先两台设备要联网,且IP在同一个网段,比如连接在同一个路由上,或者通过笔记本发出wifi信号,然后把设备连在上原创 2014-08-17 17:07:28 · 8281 阅读 · 4 评论 -
两天学会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 · 6865 阅读 · 0 评论 -
VS2008整合DirectX9.0开发环境
微软的的东西还是很庞大,很复杂,很不好用....但是看到directX自带的那些sample的时候,还是果断呆掉了,我想说,我也要做出这个!接着是花了将近一天的时间完成来搞定微软的这一套图形开发的环境。准备工作:win7旗舰版 vs2008 express(比较轻量) directX 9.0SDK 网上能下到得最新版的是2010年的那个版本,微软官网下载不了。接下来可以动原创 2012-11-18 20:52:40 · 5877 阅读 · 1 评论 -
Unity3D游戏开发从零单排(十) - 进击的Shader续
自定义光照模型在这之前首先来了解一下SurfaceOutput这个结构体,它是一个包含大多数描述一个物体表面渲染特征的结构,具体结构如下:struct SurfaceOutput { half3 Albedo;//纹理颜色 half3 Normal;//法线 half3 Emission;//自发光,不受照明的影响 half Specular;//高光指数 half Gloss;//光泽原创 2015-04-11 21:58:26 · 3016 阅读 · 3 评论 -
基于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 · 2244 阅读 · 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 · 4865 阅读 · 1 评论 -
SDL2.0上手试用
前言 个人喜好原因,写OpenGL的程序都喜欢用SDL做框架,没有Qt那么臃肿,也没有glut那么坑跌,在不失灵活性的情况下保持了自己的轻量。SDL2.0在今年很早的时候时候就发布了,几天就来好好试用一下。 下面是SDL2主要的几点新特性:全硬件加速支持OpenGL3.0+S支持OpenGLES支持Android和iOS跨平台支持Windows,MacOSX和LInux修改了原创 2013-11-09 17:02:39 · 13387 阅读 · 2 评论 -
Qt下的OpenGL 编程(2)动手搭建Qt下的OpenGL编程框架
一、 提要 在前面的一篇文章我们已经配置好了opengl的编程环境,今天要做的就是搭建一个Qt的编程框架,方便后面的学习。这一节会涉及到一些OpenGL的基础方法,多用手册和搜索引擎去理解。二、 框架结构 项目的结构如下图。 主要的思路是:mainwindow类用来处理程序的逻辑和交互,nehewidget是继承QGLWidget的原创 2012-08-09 22:49:58 · 11684 阅读 · 8 评论 -
Qt下的OpenGL 编程(5)光照和纹理滤波
一、提要 今天在网上看到一个消息,芬兰IT服务公司Digia Oyj称,公司将会出资400万欧元购买诺基亚旗下QT软件业务芬兰IT服务公司Digia Oyj称,公司将会出资400万欧元购买诺基亚旗下QT软件业务。 据我所了解,Qt算是一个非常优秀的团队,希望Qt离开Nokia之后能够发展得更好吧。 经过了上一篇的教程,我们对3D世界已经有原创 2012-08-13 08:30:29 · 4854 阅读 · 0 评论 -
Qt下的OpenGL 编程(9)3D视图变换、旋转的地球
一、提要 视图变换是3D图形中的一个很重要的概念,需要一些抽象的思维去理解。说完概念之后我们会写一个自旋转的地球的例子来帮助理解。二、照相机比喻在《OpenGL Programming Guide 》中将所有的3D变换统一到一个有意思的现实世界模型,照相机比喻。1.确定照相机的位置的过程对应于“视图变换”(Viewing Transformations原创 2012-08-22 15:52:17 · 5073 阅读 · 0 评论 -
Qt下的OpenGL 编程(8)文字、FPS、动画
一、提要 今天的学习内容是在OpenGL的窗口中显示文字,实现FPS的显示,还有OpenGL中动画的实现。二、HelloWorld 关于位图文字的显示,nehe的教程只在windows下实现了,而相关了Linux下的实现也需要借用其他的库,编程指南看了之后头更加大,于是我翻开了Qt帮助...... 在QGLWidget的说明文档里,很幸运地找到了这个函数: void QG原创 2012-08-20 23:04:47 · 6094 阅读 · 1 评论 -
Qt下的OpenGL 编程(1)Qt下的OpenGL编程必须步骤
一.前言 暑假在家里花了些时间了研究了Ogre,基本是每天一篇wiki教程。最后做完了初级教程后觉得自己进行不下去了,因为里面还有挺多东西都每有理解,所以想来接触一下更“低端”一些的东西。 要开源,当然是OpenGl了,跨平台的话,就用Qt咯,其实大三那会有花时间去研究过,但当时要应付可爱的专业课,自己的水平也很一般,研究到了纹理贴图就止步了。原创 2012-08-08 23:43:32 · 21494 阅读 · 4 评论 -
菜鸟也学Ogre-超级打地鼠
做为Ogre学习的一个小总结,最后把打地鼠这个小游戏实现一下。要看懂代码的话必须先把wiki上的初级教程都搞定。代码的实现主要参考了打工仔的那本书,但在其上做了一些修改,使用的是wiki上的框架,环境是Ubuntu11.10.下面是代码:主游戏类:TutorialApplication.h/*-------------------------------------------原创 2012-08-07 20:55:40 · 3163 阅读 · 1 评论 -
菜鸟也学Ogre-第一个Ogre程序
这里参照的是OgreWiki初级教程,用的是网上提供的 Ogre Wiki Tutorial Framework。用的cmake编译执行。先看最终效果:核心代码:void TutorialApplication::createScene(void){mSceneMgr->setAmbientLight(Ogre::ColourValue(1.0, 1.0, 1.0));原创 2012-08-06 14:25:30 · 2111 阅读 · 0 评论 -
菜鸟也学Ogre-一步步搭建Ogre
这次的教程是完全脱离了wiki的框架,白手起家搭建Ogre。Ogre的最基本的生命周期如下:1.创建根对象;2.定义Ogre将要用到的资源;3.选择并设置渲染引擎(指的是DirectX,OpenGL等等);4.创建渲染窗口;5.初始化资源;6.创建场景;7.设置第三方库和插件;8.创建帧监听;9.开始渲染循环。第一步:创建Root对象Root原创 2012-08-06 14:50:59 · 2506 阅读 · 0 评论 -
菜鸟也学Ogre-缓冲输入
OGRE中的buffered Input相对于上一篇中的unBuffered Input在每一帧监听鼠标和键盘事件,buffered Input则是直接控制鼠标和键盘。主要的代码:void TutorialApplication::createScene(void){ mSceneMgr->setAmbientLight(Ogre::ColourValue(0.25,原创 2012-08-06 14:46:24 · 1636 阅读 · 0 评论 -
菜鸟也学Ogre-帧监听和无缓冲输入
OGRE中的 Frame Listeners和Unbuffered InputFrameListener用于在帧渲染之前和渲染完成之后接收帧事件。UnbuffereInput则是在帧监听中加入鼠标或是键盘,游戏手柄的判断,然后来做出相应的操作。主要代码void TutorialApplication::createScene(void){ mSceneMgr->s原创 2012-08-06 14:38:38 · 2722 阅读 · 0 评论 -
菜鸟也学Ogre-地形天空雾
OGRE中的Terrain,sky和fog1. 为了处理Terrain场景,首先要选择相应类型的SceneManager,这里选择了“ST_EXTERIOR_CLOSE”类型。这个操作是通过Root::createSceneManager()完成的。此操作创建并返回了一个TerrainSceneManager指针,同时创建了一个HeightmapTerrainPageSource对象。2原创 2012-08-06 14:34:24 · 2183 阅读 · 0 评论 -
菜鸟也学Ogre-摄像机投影灯光
OGRE中的Light,Shadow和Camera的设置1. 要开启阴影:首先要调用SceneManager:: setShadowTechnique(),然后对于需要开启的Entity调用Entity:: setCastShadows()。2. 灯光和摄像机都需要由SceneManager来创建,分别是SceneManager::createLight()和SceneManager:原创 2012-08-06 14:30:18 · 2666 阅读 · 0 评论 -
Qt下的OpenGL 编程(10)Solar System
一、提要 今天的内容是OpenGL的编程实践—太阳系的模拟! 红宝书上有相应的教程,但这里我们要实现得更全面一些。iPad上有一个很棒的应用,名字叫Solar System,我们尽量去达到它的效果。 先来看一下最终效果: 、思路: 建立9个球体,分别赋予不同的材质,再通过动画不断变换它们的位置,就可以原创 2012-08-24 15:50:39 · 5023 阅读 · 2 评论 -
Qt下的OpenGL 编程(12)阶段学习总结
学习OpenGL也有半个多月了,收获了很多,对3D的东西也有了初步的了解。 选用的平台是Ubuntu+Qt,因为为它非常的简单。 学到后面,其实更觉得学习的东西和平台是没有多大关系的,不管你是在windows下还是Linux下,用VS还是QtCreater,重要的是实现你想要的东西,没必要找一个多么庞大的框架来实现只要几条语句就能实现的效果。原创 2012-08-28 15:52:50 · 2086 阅读 · 0 评论 -
Qt下的OpenGL 编程(3)绘制平面几何体
一、 提要 之前的一篇教程已经搭建好了Qt下的OpenGL的编程环境,几天要来学习的就是OpenGL的2D绘图。2D作为绘图的基础,还是很值得去好好学习,比如迪卡尔坐标,透视设置等等,而所谓的3D,也只是在2D的基础上加上了Z轴。 这篇教程主要包括基本2D图元的绘制,着色,旋转。二、必须要了解的几个函数gluPerspective(GLdo原创 2012-08-10 23:48:33 · 12339 阅读 · 7 评论