精华内容
下载资源
问答
  • 3D手机游戏引擎的研发和实现. 不错的理论书籍。
  • 3D手机游戏引擎

    千次阅读 2013-08-23 18:30:39
    一,寒霜2引擎(Frostbite 2 Engine)【但手机上貌似不支持】 二,虚幻3引擎(Unreal Engine 3)【没用过】 ...2D手机游戏引擎 一,cocos2d-x Cocos2d-x是一个开源的移动2D游戏框架。使用 C++ 开发,基于Ope

    一,寒霜2引擎(Frostbite 2 Engine)【但手机上貌似不支持难过

    二,虚幻3引擎(Unreal Engine 3)【没用过】

    三,unity 引擎【本人使用过】

    以上3D引擎我推测应该都是基于OpenGL ES2.0图形库支持嵌入式设备。


    2D手机游戏引擎

    一,cocos2d-x

    Cocos2d-x是一个开源的移动2D游戏框架。使用 C++ 开发,基于OpenGL ES,支持 WOPhone, iOS 4.1, Android 2.1 及更高版本, WindowsXP & Windows7,WindowsPhone 8.

    展开全文
  • gameplay3d是黑莓出品的开源,跨平台,2D及3D游戏引擎框架。目的是给游戏开发人员独立创建桌面和手机游戏。 支持的平台 Linux、Windows、MacOSX、iOS、Android 框架 c++实现Apache2.0授权doxygen文档支持的...

    简单介绍gameplay3d,然后给出windows编译。

    gameplay3d概述

    gameplay3d是黑莓出品的开源,跨平台,2D及3D游戏引擎框架。目的是给游戏开发人员独立创建桌面和手机游戏。

    支持的平台

    Linux、Windows、MacOSX、iOS、Android

    框架

    • c++实现
    • Apache2.0授权
    • doxygen文档
    • 支持的工作平台:Visual Studio, XCode, QTCreator, Eclipse and CMake
    • 二进制打包工具,利于优化ttf字体 fbx资源。

    特色

    • 完整的绘制渲染系统OpenGL (就是我们的PC,游戏主机等)OpenGL ES(移动设备)。
    • 基于材质系统的内置shader。
    • 支持灯光,场景摄像机,音频,物理和图片。
    • 陈述场景,动画,粒子,材质绑定。
    • 高层次地形和LOD。
    • 支持2D/3D的陈述ui系统
    • 可扩展的骨骼动画系统。
    • 易用的sprite, tileset 和text renderin。
    • 完整声音系统,支持wav ogg格式。
    • 全矢量数学库和二维/三维数学和可见性剔除。
    • 人工智能,状态机,消息
    • 全矢量2d/3d数学库和可见性剔除。
    • 支持输入:鼠标,键盘,触摸,手势和游戏手柄。
    • Lua脚本绑定,用户绑定生成器工具。

    windows环境配置

    gameplay3d源码

    https://github.com/gameplay3d/GamePlay

    安装依赖库

    • 在开始之前,必须先下载依赖库。
    • 运行install.bat

    安装Visual Studio 2015

    • 下载地址:http://www.microsoft.com/visualstudio/eng/downloads#d-2015-express
    • 安装路径随意,建议用英文路径

    安装DirectX SDK – June 10

    • 下载地址:http://www.microsoft.com/en-ca/download/details.aspx?id=6812
    • 使用默认安装路径: C:Program Files (x86)Microsoft DirectX SDK (June 2010)

    编译

    • 打开gameplay.sln
    • 选择Build > Build Solution (F7)

    运行例子

    • 右击你想运行的例子
    • 设置为启动项目
    • 点击调试,开始调试 (F5)
    展开全文
  • 3D游戏引擎系列六

    千次阅读 2017-02-02 13:20:16
    已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。CSDN课程视频网址:http://edu.csdn.net/lecturer/144 Cel Shading是卡通渲染一种,卡通渲染尤其是在手机...

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,国家专利发明人;已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。

    CSDN课程视频网址:http://edu.csdn.net/lecturer/144

    Cel Shading是卡通渲染一种,卡通渲染尤其是在手机游戏中应用非常广泛。由于手机硬件的限制,美工为了优化资源,节约模型的面数,通常设计场景和角色时,一般都设计成卡通效果。程序员通过GPU编程对材质进行渲染,要实现卡通渲染首先要了解其实现原理,其核心思想主要是对要进行卡通渲染的对象进行边界绘制。卡通游戏种类很多,比如2头身比例,3头身比例等,3D卡通模型的渲染主要是通过材质表现,这样在模型面数相对减少的情况下并不影响其表现效果,所以非常适用于移动端游戏开发。卡通设计效果举例如下图:


    实现方式:新建一个文本文件,将其扩展名字改成.fx。Shader完整内容如下:

    float4x4 matWorldViewPrj;
    float4x4 matWorld;
    float3 lightPos = float3(0,60,-60);
    float lightAttenuation = 0.01;
    
    float3 eyePos = float3(0,200,400);
    
    float4 mtlDiffuseColor = float4(1,1,1,1);
    
    texture texCartoon;
    texture texCartoonEdge;
    
    //--
    struct VS_INPUT
    {
    	float3 pos : POSITION;
    	float3 normal : NORMAL;
    };
    
    struct VS_OUTPUT
    {
    	float4 pos : POSITION;
    	float3 worldPos : TEXCOORD0;
    	float3 normal : TEXCOORD1;
    };
    
    VS_OUTPUT my_vs(VS_INPUT vert)
    {
    	VS_OUTPUT vsout;
    	
    	vsout.pos = mul(float4(vert.pos,1),matWorldViewPrj);
    	vsout.worldPos = mul(float4(vert.pos,1),matWorld);
    	vsout.normal = normalize(mul(vert.normal, matWorld));
    	
    	return vsout;
    }
    
    sampler CartoonSampler = sampler_state
    {
    	Texture = <texCartoon>;
    	MinFilter = Point;
    	MagFilter = Point;
    	MipFilter = None;
    	AddressU  = Clamp;
    	AddressV  = Clamp;
    };
    
    sampler CartoonEdgeSampler = sampler_state
    {
    	Texture = <texCartoonEdge>;
    	MinFilter = Point;
    	MagFilter = Point;
    	MipFilter = None;
    	AddressU  = Clamp;
    	AddressV  = Clamp;
    };
    
    //--
    float4 my_ps(float3 worldPos : TEXCOORD0,
    			 float3 normal : TEXCOORD1) : COLOR
    {
    	float4 color;
    	
    	//-- ambient
    	float lum = 0.2f;
    	
    	//-- diffuse
    	normal = normalize(normal);
    	
    	float3 L = lightPos - worldPos;
    	float d = length(L);
    	L /= d; // normalize L
    	
    	float atten = 1/(lightAttenuation*d);
    	float diff = saturate(dot(normal, L));
    	
    	lum += diff * atten;
    	
    	float4 cartoonColorDiff = tex2D(CartoonSampler,lum);
    	
    	color = cartoonColorDiff*mtlDiffuseColor;
    	
    	//-- edge
    	float3 V = normalize(eyePos - worldPos);
    	float e = (dot(normal,V));
    	float4 edgeColor = tex2D(CartoonEdgeSampler,e);
    	
    	color *= edgeColor;
    	
    	return color;
    }
    
    //--
    technique my_tech
    {
    	pass p0
    	{
    		VertexShader = compile vs_1_1 my_vs();
    		PixelShader = compile ps_2_0 my_ps();
    	}
    }
    

    针对上述代码解释一下,变量声明:

    texture texCartoon;

    表示的是输入卡通化的纹理

    texture texCartoonEdge;

    表示的是输入的卡通边缘的纹理,其他变量声明上节已经介绍过了,这里就不重复了。

    sampler CartoonSampler = sampler_state;
    表示的是纹理采样,为了让大家更容易理解,结合着Unity的纹理设置。效果如下图:

    下面是卡通纹理采样和纹理边缘取样,这两个是最重要的实现,它们调用的是Shader的接口函数tex2D实现的。

    float4 cartoonColorDiff = tex2D(CartoonSampler,lum);
    float4 edgeColor = tex2D(CartoonEdgeSampler,e);
    

    卡通纹理的像素着色器是在如下函数实现的:

    float4 my_ps(float3 worldPos : TEXCOORD0, float3 normal : TEXCOORD1) : COLOR

    下面的代码片段是用物体上的材质法线和灯光的照射方向进行点乘计算,从而得到物体上的颜色。

    float4 color;
    	
    	//-- ambient
    	float lum = 0.2f;
    	
    	//-- diffuse
    	normal = normalize(normal);
    	
    	float3 L = lightPos - worldPos;
    	float d = length(L);
    	L /= d; // normalize L
    	
    	float atten = 1/(lightAttenuation*d);
    	float diff = saturate(dot(normal, L));
    	
    	lum += diff * atten;
    	
    	float4 cartoonColorDiff = tex2D(CartoonSampler,lum);
    	
    	color = cartoonColorDiff*mtlDiffuseColor;
    

    物体边缘渲染是通过法线计算得到的,最后使用纹理取样函数tex2D得到的最终的物体边缘颜色,代码片段如下所示:


    float3 V = normalize(eyePos - worldPos);
    	float e = (dot(normal,V));
    	float4 edgeColor = tex2D(CartoonEdgeSampler,e);
    	
    	color *= edgeColor;
    

    卡通渲染需要两张贴图:一张是卡通纹理,另一张是边缘纹理。如下图:


    卡通边缘纹理如下图:

    这两张贴图在加载Shader文件之前都会被程序事先读取到内存里,Shader文件加载上节已经写过了,在这里就不重复了,直接上图片文件的加载,使用的是Direct3D的库函数代码如下:

    HRESULT hr = D3DXCreateTextureFromFile(pD3DDevice,"Media\\Cartoon.jpg",&m_pCartoonTex);
    	hr = D3DXCreateTextureFromFile(pD3DDevice,"Media\\edge.jpg",&m_pCartoonEdgeTex);
    

    文件加载使用的是Direct3D提供的接口:D3DXCreateTextureFromFile函数,接下来把Shader文件需要的参数通过C++代码传递给Shader文件,最后在GPU中执行。函数核心代码如下所示:

    float t = timeGetTime()/4000.0f;
    	float r = 150;
    	m_lightPos.x = sinf(t) * r;
    	m_lightPos.z = cosf(t) * r;
    	m_lightPos.y = sinf(t) * r;;
    
    	hr = m_pEffect->SetFloatArray("lightPos",(float*)&m_lightPos,3);
    	hr = m_pEffect->SetFloatArray("eyePos",(float*)&g_camera.getEyePos(),3);
    	hr = m_pEffect->SetTexture("texCartoon",m_pCartoonTex);
    	hr = m_pEffect->SetTexture("texCartoonEdge",m_pCartoonEdgeTex);
    	
    	D3DXMATRIX matWorld;
    	D3DXMatrixIdentity(&matWorld);
    
    	D3DXMATRIX matWorldViewProj = matWorld * g_camera.getViewMat() * g_camera.getProjectMat();
    	hr = m_pEffect->SetMatrix("matWorldViewPrj",&matWorldViewProj);
    	hr = m_pEffect->SetMatrix("matWorld",&matWorld);
    

    其中参数m_lightPos与上节的用法一样,表示灯光可以在场景中旋转运动。使用C++的接口SetFloatArray函数把Shader脚本的参数传递进来,再使用SetTexture函数把图片传递给Shader脚本文件用于纹理采样。这个与Unity中的纹理渲染一样,只是Unity编辑器提供了供用户直接拖放的接口,最后使用SetMatrix函数接口把3D世界空间中的矩阵传递给GPU去计算。实现的最终效果图:


    在光线正面照射情况下,物体的材质颜色是明亮的,背面是比较暗的,这个是通过物体表面法线与灯光的夹角计算得到的。

    敬请期待。。。。。。。。
    展开全文
  • java3d游戏引擎

    热门讨论 2010-08-05 10:40:53
    无比强大的纯java开发的游戏引擎,源代码下载!
  • 3d 游戏开发 引擎架构 场景管理 碰撞检测 物理系统
  • 主要介绍了Unity3D游戏引擎在Android中打开WebView的实例,需要的朋友可以参考下
  • Android 开源3D游戏引擎汇总

    千次阅读 2013-01-07 17:24:07
    Android 开源3D游戏引擎汇总【转】 1. jPCT-AE 介绍:jPCT支持Android版本。 网址:http://www.jpct.net/jpct-ae/ 2. kwwaak3 介绍:Quake 3移植到Android平台的手机 特性:声音、网络、OpenGL 3D渲染...
    Android 开源3D游戏引擎汇总【转】 
    
    1. jPCT-AE
    介绍:jPCT支持Android版本。
    网址:http://www.jpct.net/jpct-ae/

    2. kwwaak3
    介绍:Quake 3移植到Android平台的手机
    特性:声音、网络、OpenGL 3D渲染
    网址:http://code.google.com/p/kwaak3/

    3. Gamine
    介绍:个人开发的开源3D游戏引擎
    特性:场景创建、光照、纹理、物理的rigid body、碰撞检测
    其他:下载包内含有多个实例
    网址:  http://gamine.sourceforge.net/

    4. Alien3D
    介绍:java编写的OpenGL ES接口的3D游戏引擎。
    特性:3DS装载、2D 粒子、原型插件,tiled地图、精灵动画
    网址:http://code.google.com/p/alien3d/

    5. catcake
    介绍:个人开发C++编写的支持Window、Linux、Android平台的3D游戏引擎
    特性:轻量级动画任务管理、资源管理、内存管理、屏幕分割、GLSL、碰撞检测(球形、盒子、三角形、射线)、3DS、3D图形的自动3D模型生成
    效果: model
    网址: http://code.google.com/p/catcake/

    【转自】http://www.j2megame.com/html/xwzx/ty/820.html
    展开全文
  • Unity3D 游戏引擎之详解游戏开发音频的播放 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/550 ...
  • Android游戏近几年受到疯狂追捧,但手机资源的局限给3D游戏引擎提出了更高要求。结合Android平台下3D游戏引擎的现状,阐述了游戏引擎结构的演变,对Android平台主流引擎进行了对比和分析,并对引擎中涉及场景渲染的...
  • 近日,Turbulenz开发团队宣布开源Turbulenz HTML5游戏引擎,该项目基于MIT许可证。目前项目托管在GitHub,...Turbulenz允许所有构建基块的开发人员创建高质量和硬件加速的2D、3D游戏,该项目可适用于多个平台包括手机
  • Unity3D 游戏引擎之平面小球重力感应详解雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客...在新一代智能手机Android IOS WP7 很多游戏都是使用手机自带重力感应功能制作的,强大的Unity3D 游戏引擎当然对这
  • 在以下位置的Google Play商店中查看游戏 学分 用C#Unity3d开发。 由张宇航开发。 塞卡拉音乐与艺术学院的音乐。 安装/构建说明 在Android上安装 将lightspeed.apk复制到手机存储中。 通过您的Android设备上的任何...
  • Unity3D 游戏引擎之IOS高级界面发送消息与Unity3D消息的接收 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/517 ...
  • Unity3D游戏引擎之构建游戏框架与导出IOS项目雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/451首先先去Unity3D官网 ...
  • Unity3D 游戏引擎之游戏场景的切换与持久化简单数据的储存 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:...
  • Libgdx和jpct3D游戏引擎介绍

    千次阅读 2014-04-13 07:07:24
    Libgdx是一款基于OpenGL ES技术开发的Android游戏引擎,支持Android平台下的2D游戏开发,物理引擎采用Box2D实现。单就性能角度来说,堪称是一款非常强大的 Android游戏引擎, 缺点:(1)精灵类等相关组件在使用...
  • Unity3D 游戏引擎之IOS自定义游戏摇杆与飞机平滑的移动雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/526 移动开发游戏中使用到的触摸...
  • CSDN.NET 今天下午,搜狐畅游宣布将旗下首款商业级游戏引擎Genesis-3D正式对外发布,官网www.genesis-3d.com.cn也正式启用。Genesis-3D将基于MIT协议开源,并以开放SDK包的形式供全球开发者下载,这意味着游戏开发...
  • 7个最优秀的手机游戏引擎

    千次阅读 2020-10-08 00:34:11
    随着智能手机成为主要的游戏平台,移动游戏引擎变得越来越流行。 下面将介绍7个最优秀的手机游戏引擎。 1.Corona SDK 游戏开发引擎 这是一款实用Lua语言作为开发语言的游戏引擎,对我来说比起的其他的游戏引擎要好学...
  • 主流手机游戏引擎介绍

    千次阅读 2016-11-10 10:59:23
    摘要: 游戏引擎是指一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由...
  • Unity3D 游戏引擎之感应IOS设备旋转与iPhone键盘事件 雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/556 ...
  • 引擎简介 <br />自2001年起MascotCapsule在手机上实现3D以来,不仅在日本市占率一枝独秀, 全球手机中MascotCapsule也大量被使用。 在海外市场,MascotCapsule已被多数运营商以及主要手机厂商...
  • Unity3D 游戏引擎之IOS触摸屏手势控制镜头旋转与缩放雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:http://www.xuanyusong.com/archives/512前几篇文章介绍了很多Unity3D...
  • 现在手游火的一塌糊涂,引擎也是层出不穷除了引领3D市场的Unity3D,独霸2D市场的Cocos2D-X之外,还有虚幻、Sphinx等,甚至搜狐也开发了国产的Genesis-3D引擎。 其它的不多说,这里主要就对比Unity3D和Cocos2D-X,...
  • 但推出的开源跨平台的3D游戏引擎GamePlay,虽说比不上Unity炫酷,但再怎么样人也是个“富二代”,且GamePlay对那些想要开发移动或桌面游戏的独立开发者,也有着很大的帮助。 所以,GamePlay还是值得了解一下的...
  • 本教程可以带领大家从一个普通的Android应用开发者进入3D应用的世界,从3D应用开发基础知识开始,完成受众多手机用户所喜爱的3D应用的开发。
  • Unity3D手机游戏开发

    2016-12-01 12:57:27
    Unity,也称Unity3D,是近几年非常流行的一个3D游戏开发引擎,跨平台能力强,使用它开发的手机游戏数不胜数。 本书通过三个部分循序渐进地介绍了Unity在游戏开发方面的不同功能。第1~5章,由零开始,引导读者从基本...
  • Unity 3D 游戏引擎

    2021-05-08 13:14:02
    Unity 3D也称 Unity,是由 Unity Technologies 公司开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具。Unity 3D 可以运行在 Windows 和MacOS X 下,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,945
精华内容 5,978
关键字:

手机3d游戏引擎