自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

自由理想的足迹

只要功夫深,铁杆磨成针

  • 博客(509)
  • 资源 (10)
  • 收藏
  • 关注

原创 U3D Shader Forward Path光源存储信息

1.Forward Add要和Forward Base一起使用。Tags{ "LightMode"="ForwardBase"}Tags{ "LightMode"="ForwardAdd"}否则Forward Add在任何渲染路径下都不被渲染。2.Vertex list渲染路径下,Forward的Shader,都不会被渲染出来。在向前或延后渲染路径下,Forward 的Shad

2017-11-11 13:40:28 981 1

原创 U3D Shader Vertex Path光源存储信息和自定义shader实现

在Editor\Data\CGIncludes\UnityCG.cginc中有响应的说明。1) 光源float4 _WorldSpaceLightPos0; // 表示光源的位置,_WorldSpaceLightPos0.w == 0是平行光。否则是点光源。float4 _LightColor0; // 表示光源的颜色。2)点光源存储,三个float4向量,表示4个点光源的

2017-11-09 00:17:17 1014

原创 Unity Shader渲染顺序 坐标系 和光照模型

1.Shader中的渲染顺序是按照Queue"="Geometry" "RenderType"="Opaque,Queue是一般渲染时候的顺序,RenderType是后处理特效使用的渲染顺序。Background, Geometry, AlphaTest,Transparent和Overlay,分别对应数值1000,2000,2450,3000和4000。Shader中,如果要C#访问的u

2017-11-08 21:59:35 1190

原创 U3D 发布相关

设置项目名称,项目启动图像,分辨率设置,添加需要发布的场景。注意预定义宏,.net 版本设置,渲染路径,Bundle Identify,资源版本,图形API设置。web主要是js和unity之间的相互通信,设置离线是否可播放的选择。android主要是安装好java sdk, android sdk,直接发布apk,也可以发布google android project。ios主要

2017-10-07 18:12:27 784

原创 U3D 优化技术

一、Batching技术:在拥有网格并携带一种不同的材质时候才会形成一个独立的drawcall, 在通知GPU和切换材质shader纹理时候也是比较耗时的(特别是第一次CPU->GPU传递纹理数据)。Batching 的主要目标是 合并物体的材质,只要他们使用相同的材质(纹理和shader),GPU就可以按完全相同的方式进行处理(批处理合并drawcall)。Batching处理技

2017-10-07 14:28:30 1102

原创 U3D资源加载

Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两者区别不大。 Resources.Load就是从一个缺省打进程序包里的AssetBundle里加载资源,而一般AssetBundle文件需要你自己创建,运行时 动态加载,可以指定路径和来源的。开发时候用Resources.Load较简单(放在Resources目录下),主要看发布

2017-10-06 23:35:40 1942

原创 U3D编辑器拓展

U3D除了提供Runtime class,还提供了Editor class用于编辑器的拓展开发,包括编辑器环境下的GUI类,编辑器工具类,编辑器操作类等。自定义编辑窗口:using UnityEditor;public class MyWindow : EditorWindow {static MyWindow myWindow;[MenuItem("Window/MyWind

2017-10-06 21:14:13 902

原创 U3D网格解决方案

U3D对的网络功能是尽可能可靠,灵活为设计原则。两种成熟的网络方案是 授权服务器和非授权服务器。1.授权服务器其实也叫状态同步,由服务器处理所有的游戏状态,客户端只是处理输入请求和表现,不维护具体的游戏状态逻辑。主角的移动,技能的释放需要服务器作出反应,这些状态才能真正有效。可以避免外挂,但是问题是操作有网络延迟,需要做前摇处理。2.非授权服务器也叫帧同步,由客户端进行游戏的交互和本地进行

2017-10-06 18:19:07 796

原创 U3D Shader去掉全局雾和使用自定义环境光

去掉环境光照和全局雾,添加自己的环境光又利用surface的shader光照和阴影全局雾用nofog去掉,noambient去掉,注掉UNITY_LIGHT_FUNCTION_APPLY_INDIRECT添加自己的环境光inline fixed4 LightingU1BlinnPhong (SurfaceOutput s, fixed3 viewDir, UnityGI gi){f

2017-10-06 14:41:28 3437

原创 U3D的Shader数据的来源

1.所有Unity的Shader数据的来源先获取MaterialPropertyBlock设置的数据,再获取Render物体(Render关联的Mesh Filter中获取)的材质球设置的数据,然后从全局内建或通过程序设置的数据,最后使用默认数据。材质对象可以获取编辑器上序列化的数据,或通过app动态改变属性(矩阵和数组只能动态写入,不能序列化)。How property values

2017-10-06 14:40:20 1078

原创 U3D Shader

Shader实现各种材质和光照效果,镜头景深,动态模糊,卡通渲染等。U3D是简单的游戏引擎,提供了尽量多的内建功能,丰富全面的Shader就是其中之一。要善于使用U3D内建的Shader和自己编写的Shader实现效果。一.内建Shader有简单光效,高光,法线,反射等,分类有:1)普通,用于不透明的物体。2)透明,用于透明物体。3)透明镂空效果,用于包含完全透明部分的半透明对

2017-10-06 14:28:32 1242

原创 U3D脚本

js脚本:对于unity js没有修饰符的变量是public修饰符,在Inspector中可调节。变量和函数的声明都是as语言标准的形式。unity js会自动添加和文件名同名的类,会自动继承MonoBehaviour类。C#脚本:C#默认参数访问类型是private的。C#脚本, 文件名要和类名相同;继承自MonoBehaviour类,需要Awake(),Star

2017-10-05 17:57:21 794

原创 U3D数学图形基础

向量和矩阵,四元数,欧拉角:U3D使用的是左手坐标系。基础数学类有:Vector3类,Vector4类等。在世界坐标系中叉乘是按照左手坐标系进行的。旋转方向也是按照左手定则规定的。Slerp插值函数:transform.position = Vector3.Slerp(riseRelCenter, setRelCenter, fracComplete);//Slerp插值U

2017-10-05 17:56:51 758

原创 U3D寻路导航网格

需要寻路导航的物体增加导航组件,场景中的物件(地块)设置为带有一定路径信息(联通障碍等)的网格,设置寻路物体的目标点,寻路物体会在地图场景中根据网格路径信息找到最短的路径到达目标点。使用导航网格寻路的步骤:1)创建地图场景的游戏对象标记为navigation static类型,以参与导航网格的烘培。对场景中的起始点物体添加navigation->Off Mesh Link组件 可以设置

2017-10-05 17:56:08 1184

原创 U3D场景遮挡剔除技术

Occlusion Culing遮挡剔除,在场景中将不会看到或隐藏的对象进行剔除,从而减少每帧提交给渲染管线的数据量。U3D提供了三种不同的剔除技术来供用户选择。遮挡剔除步骤:1)将场景中需要剔除的静态物体动勾选Static标志,可以进行光照烘培。也可以在occlusion culling窗口中的object页签中设置,无法裁剪动态的数据,因此如果游戏对象是运动的需要勾选occlude

2017-10-05 17:55:34 2737

原创 U3D后期全屏幕渲染特效

Image Effects图像特效主要应用在Camera对象上,可以让游戏画面带来丰富的视觉效果,使得游戏画面更具艺术感和个性。U3D的大部分特效可以混合使用,U3D的图像特效都在OnRenderImage()函数中在图像到达颜色缓存进行显示交换前进行的图像处理,任何附加在摄像机上的Image Effects脚本都可以通过编辑其代码来修改特效的效果。所有的后期屏幕特效只有pro版本才支持。

2017-10-05 17:54:55 3645

原创 U3D粒子系统

粒子系统可以对任何物体,添加粒子组件。1)老粒子粒子由发射器,运动器,渲染器组成。当设置粒子的velocity时候,设置x,z值可以得到风吹走的效果。simulate in world space在是世界坐标系中更新粒子,关闭后可以跟随物体运动,技能特效效果需要该设置。粒子性能比较消耗性能,要尽量使用少量,少层的粒子达到效果,且粒子要及时关闭和销毁。老式的粒子动画器勾选

2017-10-05 17:54:05 1233

原创 U3D光源烘培光照贴图和light probes

光源:方向光源是最不消耗GPU资源的。点光源的阴影较消耗GPU资源。聚光灯是较消耗GPU资源的。Area light区域光源无法用于实时光照,只适用于光照贴图烘培。Cookie如果是平行光或聚光灯 那么可以是2D的纹理遮罩贴图,如果是点光源那么cookie要是cubemap texture立方体纹理。在forward渲染模式下只有平行光支持阴影,其它光源类型在player

2017-10-05 17:51:39 7027

原创 U3D物理引擎

物理效果,布料,碰撞检测都需要rigibody刚体组件。使用物理引擎,引入力大小和速度的(最终会通过物理引擎改变transform参数),不能同时操作transform的参数,否则对transform的计算将会出现错误。rigibody:mass是刚体的质量, drag是空气阻力,angular drag是角阻力。is kinematic是否开启动力学,不再受物理引擎的影响tr

2017-10-05 17:50:52 1690

原创 U3D角色动画

1.角色导入角色控制器资源,有第一人称和第三人称prefab及移动组件。1)基本的CharacterController3D角色的旋转跟着鼠标轴旋转。CharacterController move移动,tr.Rotate旋转和OnControllerColliderHit 碰撞处理。Input.GetAxis("Mouse X") 屏幕上从左往右是正值,从右往左是负值。I

2017-10-05 17:49:30 1425

原创 U3D基础教程重读 基础编辑和导入文件

编辑器,主要是asset->project; gameobject(prefab)->scene; component->inspector的使用。file/edit是设置;windows是不同的编辑视图,动画,烘培,纹理打包,性能分析等:1.基本使用:习惯开菜单上的快捷键,提高操作能力;ctrl+1;鼠标滚轮,选中F;按下Q拖动场景或鼠标滚轮可缩放场景;alt鼠标右键旋转;鼠标左

2017-10-05 17:48:14 1225

原创 unity3d渲染路径整理

方向光源是最不消耗GPU资源的。点光源的阴影较消耗GPU资源。聚光灯是较消耗GPU资源的。Area light区域光源无法用于实时光照,只适用于光照贴图烘培。Cookie如果是平行光或聚光灯 那么可以是2D的纹理遮罩贴图,如果是点光源那么cookie要是cubemap texture立方体纹理。unity3d渲染路径:只有平行光在forward渲染模式下支持阴影,其它光源类型在pl

2017-09-18 13:14:50 1231

原创 切线空间法线贴图生成和应用的理解

一、基于切线空间坐标系的法线贴图理解:使用法线贴图是因为在低模下想获得高模凹凸表面光照效果。因为基于模型坐标系的法线贴图,在换到不同的模型下时候法线贴图不能复用。故引入切线空间让法线贴图可以在相同网格形状模型(或许是子模型)但不同模型坐标系的多个模型间可以共享法线贴图。以下是我个人对切线空间求取,法线贴图求取,法线贴图计算光照的理解,不对之处欢迎指出:1)低模切线空间求取:假设:dp是网格上某三角...

2017-09-16 17:06:39 2514

原创 关键帧逐帧蒙皮动画原理

一、关键帧动画怎么插件的,还有GPU蒙皮关键帧动画也称为属性插值动画,一般用于2d非图像质变的动画,主要是对图像的大小,旋转,移动进行插值的关键帧动画,只需要一幅图片就可以,插值方式有线性插值,样条插值。二、逐帧动画是每个帧都有图片,用一个图片序列,按照时间间隔来播放动画,用动画设计软件进行动画设计时候使用关键帧动画设计,但是输出为逐帧动画,2d动画很多采用这个模式。三

2017-08-09 23:27:36 1857 1

转载 JavaScript与ActionScript3那些事

转载自:http://www.cnblogs.com/meteoric_cry/archive/2013/04/03/2997991.html接触JavaScript和ActionScript3也有近5年的时间了,它们都是应用比较广泛的脚本语言,经过这几年的工作和学习,静下来的时候想总结一些东西,作为技术上的沉淀以及培训所用,所以就有了这篇文章。先来看看二者的同性与差异性: 共

2017-07-09 22:47:54 4593

转载 JavaScript引擎、虚拟机、运行时环境浅析

转载自:http://www.cnblogs.com/Bideam/p/5858419.html一、JavaScript引擎:  所谓JavaScript引擎是一个专门处理JavaScript脚本的虚拟机,一般会附带在网页浏览器之中,用于解释和执行js脚本。  著名的js引擎:    Mozilla:SpiderMonkey引擎,世界第一款JavaScript引擎,有C/C

2017-07-09 22:32:31 1094

原创 ActionScript3基础语法-变量类型

// AS3 一切类型都是面向对象的,基类都是Object public function AS3VarType() { // 基础类型是值类型,是不变对象,发生改变会生成一个新的,应该是存储在栈中的不变对象 // 当没有引用指向该变量的时候,变量和它所指向的内存会被AVM回收掉 // 布尔类型 var isTrue:Boolean = true;

2017-07-09 22:30:07 1384

原创 win shell和macos shell脚本实例

本实例的功能是命令行输入的Excels文件名和sheet名,输入符合protobuf格式的data数据文件和.cs存取类,分别提供了win和mac版本的脚本代码。第一步,将xls经过python的xls_deploy_tool.py转成data和proto第二步:用proto.protobin把proto翻译成cs第三步:将data和cs拷到Assets里win shell脚本:

2017-06-13 10:21:26 1413

原创 OC语法详解

一.基础语法-(void) setNumerator: (int) n;-符号是实例方法,+号是类方法。(void)是返回类型,可以是(int)等。setNumerator方法名。:符号说明有参数(int) n;是参数类型和参数名称。二.文件结构Fraction.h文件,描述类和方法。#import@interface Fraction: NSObject

2017-06-12 08:01:27 5787

原创 c++11新特性总结和boost库的使用

代码见:https://github.com/Jeromecen/cpp11study/tree/masterI、保持语言的稳定性和兼容性” 总结:主要是utf8字符串,虚函数override/final支持。 1、c++11宏和类型(考虑和c99兼容):STDC_HOSTED、STDC、__VA_ARGS__宏可以替代...、__cplusplus宏用于c和c++混编,非布尔值还可以判断

2017-06-12 07:01:24 4740 2

原创 向前光照和延后光照渲染器问题和原理

首先光照分为实时光照和烘焙光照,这里讨论的是对动态物体采用的实时光照。1.为何提前光照计算在多光源下需要多个drawcall?因为光照计算主要涉及点光源,聚光灯,平行光,环境光;主要的光照计算是漫反色光照模型:Cd = max( dot(l,n), 0) * Sdiff + Mdiff.镜面反色模型:blinn:Cs = pow( max( dot( normalize( l+v

2017-05-19 13:17:45 2989

转载 C++ 内存分配(new,operator new)详解

转载自:http://blog.csdn.net/wudaijun/article/details/9273339本文主要讲述C++ new关键字和operator new, placement new之间的种种关联,new的底层实现,以及operator new的重载和一些在内存池,STL中的应用。一. new operator 和 operator newnew ope

2017-05-17 10:43:13 950

原创 C++ static_cast dynamic_cast const_cast reinterpret_cast使用总结

因为原来C风格的暴力万能类型转换容易导致运行时出错,所以要引入分类更清晰提前发现错误的转换语法。对象的类型转换包含了对象的引用或指针。1.static_cast是编译器默认选项,但是没有动态检查所以类对象间非直线继承转换不支持(无关对象指针类型),C风格的转换确是可以的,所以并不是C风格转换的替代品。所以基本类型转换,类上行转换(类的下行转换有隐患),把其它类型转换为void*都是安全

2017-05-16 15:41:33 444

原创 IOS OC内存堆资源使用总结

堆内存资源不是常量静态全局数据区,代码区,或栈区,不会运行中保持不变或自动清理,所以需要堆内存管理技术。堆内存管理最主要的问题是:野指针空指针crash, 内存泄露(没有引用或者有引用导致不能重用)。一. MRC: 1)ios 5.0之前谁拥有谁释放,不拥有不释放alloc/init/new 引用计数会加1.retain引用计数会加1.使用完对象就要release.@a

2017-05-12 15:13:07 723

转载 用好Lua+Unity,让性能飞起来——Lua与C#交互篇

用好Lua+Unity,让性能飞起来——Lua与C#交互篇张鑫6 个月前转载自:https://zhuanlan.zhihu.com/p/23559893原文地址:用好Lua+Unity,让性能飞起来——Lua与C#交互篇整合Lua是目前最强大的Unity热更新方案,毕竟这是唯一可以支持iOS热更新的办法。然而作为一个重度uLua用户,我们踩过了很多坑才将u

2017-05-02 22:19:02 21156 1

原创 手游客户端设计思路整理

初衷,回顾改进之前游戏中设计的优劣,设计出简单健壮稳定,可读可维护,可拓展,可测试的优雅程序。基于弱联网模式,战斗逻辑全部在客户端,关键信息在服务器上同步跑,使用帧同步,基于投票的反外挂设计。架构设计思路整理:1.客户端划分层次管理,管理器依赖接口,CObjMgr客户端做表现和表现相关的动态运算, SObjMgr存放关键数据如基础属性道具加成。拆分复杂的数据泥团。 2.基于接口

2017-05-02 15:31:23 2377

原创 Unity3D 自定义光照模型实现

// Use BlinnPhongShader "U1/Obj/U1ObjNoAmbient" {Properties{_Color("Diffuse Material Color", Color) = (1,1,1,1)_SpecColor("Specular Material Color", Color) = (1,1,1,1)_MainTex("Base (RGB

2017-05-02 15:22:40 2239

转载 Java三种编译方式:前端编译 JIT编译 AOT编译

Java三种编译方式:前端编译 JIT编译 AOT编译转载自: http://blog.csdn.net/tjiyu/article/details/53748965      Java程序代码需要编译后才能在虚拟机中运行,编译涉及到非常多的知识层面:编译原理、语言规范、虚拟机规范、本地机器码优化等;了解编译过程有利于了解整个Java运行机制,不仅可以使得我们编写出更优

2017-05-01 10:36:18 841

原创 OGLES顶点着色器

顶点着色器在模型变换到裁剪空间阶段,主要进行几何变换和光照的计算,逐顶点颜色,法线和纹理坐标计算。顶点着色器的输入包括1)属性2)统一变量和统一变量缓冲区3)采样器4)着色器程序顶点着色器内建变量1)内建特殊变量gl_VertexIDgl_Positiongl_InstanceIDgl_PointSizegl_FrontFacing是否是正面2)

2017-03-13 10:50:59 725

原创 OGLES Shader间数据传递修饰符

顶点着色器的输出和片段着色器的输入保存在插值器中,对每个顶点用向量数组的方式存储。(OGL会对Uniform变量和插值器进行打包,打包后会更好的利用内存,所以对于uniform数量和顶点输入,输出,片段输入输出的数量在打包后不超过限制即可正常运行)。(1) 着色器输入输出和变量类型限定符in(默认类型),out,inout, const, invariant。GLSL 1.4版本中

2017-03-13 09:21:10 957

VisualAssist.X_10.9.2333

Visual Assist X For Visual Studio, 番茄助手支持VS2019 VS2017 VS2015 VS2012 VS2010. 亲测可用,欢迎评论

2020-05-31

Python学习文档

Python学习文档

2018-10-04

Lua代码优化总结

编写高性能的Lua代码总结

2018-10-04

C++ 11 学习总结文档

c++特性11 学习 总结文档,对特性查询很有帮助,欢迎下载

2018-10-04

Unreal Engine 4 Game Development in 24 Hours

Unreal Engine 4 Game Development in 24 Hours英文版本,欢迎下载。

2018-10-03

CC++黑色星期五计算方法

C C++黑色星期五代码,逻辑严谨,代码清晰的实现,VC Linux下代码可以直接运行;欢迎下载切磋。

2013-03-12

Linux帮助文档用户指南手册

Linux帮助文档 用户指南 linux/unix用户手册,新手管理员指南;必备文档,chm格式。

2011-04-11

C/C++语言帮助文档

C/C++ 帮助文档 参考文档 ,包含C函数库,C++标准模板库,chm格式易于查询,C/C++程序员手册

2011-04-11

MFC最详细的帮助文档

MFC详细的帮助文档,内涵win32 API 函数,MFC详细类库;VC开发人员的详细文档。

2011-03-08

linux帮助文档linux.chm

linux帮助文档;全面了解最流行的linux版本特征;详解linux操作系统;对初学者很有帮助哦。

2010-11-26

空空如也

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

TA关注的人

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