自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 UI系统

using UnityEngine;using System;using UnityEngine.UI;using System.Collections;using System.Collections.Generic;using UnityEngine.EventSystems;public class UIManager : MonoBehaviour { privat...

2019-10-21 21:26:48 300

原创 消息通知系统

using UnityEngine;using System.Collections;using System.Collections.Generic;public delegate void NotificationDelegate(Notification notification);public class NotificationManager{ //单例 p...

2019-10-21 21:24:35 1074

原创 Shadow

屏幕空间的阴影实现步骤:1、首先得到从当前摄像机处观察到的深度纹理。在延迟渲染里这张深度图本来就有,如果是前向渲染的话就需要把场景整个渲染一遍,把深度渲染到深度图中。2、然后再从光源出发得到从该光源处观察到的深度纹理,也被称为这个光源的ShadowMap。3、然后在屏幕空间做一次阴影收集计算(Shadows Collector),这次计算会得到一张屏幕空间阴影纹理,也就是说这张图里面需...

2019-10-21 21:17:49 365

原创 PBR

直接光照部分BRDF方程漫反射:兰伯特光照模型,除以π是为了能量守恒高光反射D项这个式子被称为Trowbridge-Reitz GGX,是高光反射项的D项,法线分布项。其中的h为半角向量,n为法线,α是粗糙度相当于roughness或者1 - smoothness,unity内部实现的roughness(或者α) = (1 - smoothness) ...

2019-10-21 21:14:13 1009

原创 BRDF

BRDF分为漫反射和高光反射部分漫反射部分unity采用的是Disney漫反射模型half DisneyDiffuse(half NdotV, half NdotL, half LdotH, half roughness){ half nlPow5 = Pow5 (1-NdotL); half nvPow5 = Pow5 (1-NdotV); half...

2019-10-21 20:43:56 537

原创 ParallaxMap

法线贴图可以改变物体视觉上的凹凸,但是不能改变凹凸带来的视觉遮挡。视差需要一张高度图i.tangentViewDir = normalize(i.tangentViewDir);i.uv.xy += i.tangentViewDir.xy * _ParallaxStrength;这样带来的效果是贴图整体上移。这样做有效地将视角方向投影到纹理表面上。当以90°的角度看直线的...

2019-10-21 20:42:45 391

原创 UnityStandardShader依赖文件

UnityPBSLighting.cginc:定义了表面着色器使用的标准光照函数和相关的结构体等,如LightingStandardSpecular函数和SurfaceOutputStandardSpecular结构体。 UnityStandardCore.cginc:定义了Standard和Standard(Specular setup)Shader使用的顶点/片元着色器和相关结构体,辅助函数...

2019-10-21 20:35:47 442

原创 C++数据结构

队列环形队列Person.h代码#ifndef PERSON_H#define PERSON_H#include #include using namespace std;class Person{public:Person(string name="",int age=0);~Person();void PrintInfo() const;st

2016-12-14 14:53:54 305

原创 C#

C#中分为值类型和引用类型值类型:构造体struct,基本类型,储存在栈中引用类型:类,string等是引用类型,对象储存在堆中,引用变量存储在栈中。C#中的内存:1,栈:存放变量,速度快,容量小,由系统管理2,堆:存放对象,可自己分配内存使用。3,常量区:存放常量,4,静态区:存放只有一份的东西5:,代码区:代码会编译成二进制,保存到代码区。析

2016-11-17 18:02:22 249

原创 OpenGLES2.0笔记

capacity:容量 allocate:分配 Coord:坐标 vertex:顶点 Square:平面 Program:程序 Compile:编译 font:字体 pname:工程名称 Validate:验证ByteBuffer和FloatBuffer是java.nio包下的类 ByteBuffer bb=ByteBuffer.allocate(capacity);//参数是一

2016-11-03 21:51:53 1223

原创 OPENGL

安卓中的音频文件会占用比较多的资源,MediaPlayer(媒体播放器)有时候会出现音效延迟,所以使用SoundPool会比较好,但是音频的长度最好不要超过7秒。SoundPoolSoundPool的构造方法 参数: int maxStreams:设置最多能同时播放几个音频 int streamType:设置音频类型 int srcQuality:音频质量,默认设置0就可以 public

2016-11-02 16:05:28 405

原创 4大组件

可以注册广播来监听网络变化,主要用的是BroadcastReceiver来监听系统的消息。 网络状态变化的Action是”android.net.conn.CONNECTIVITY_CHANGE” 需要权限: 需要用到ConnectivityManager类来得到网络信息类NetworkInfo,然后可以networkInfo.isAvailable();判断网络。public class

2016-11-01 12:21:14 256

原创 JNI笔记

JNI:java native interface,java本地接口,可以调用本地的c/c++的函数。 java因为它基于虚拟机,是解释型语言。在处理很多事情上比较消耗内存,比如说渲染图片,或者一些游戏方面的问题不如C/C++,所以JNI的作用就是可以解决这个问题。基本数据类型的对比java 占用字节数 C 占用字节

2016-10-29 22:22:04 291

原创 ViewPager翻页,下标,循环播放

package com.example.viewpagerdemo2;import java.util.ArrayList;import java.util.List;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import

2016-10-22 22:25:42 1119 1

原创 自定义View整理

,获取控件的宽高,X,Y坐标等//定义一个TextView TextView tv=(TextView)findViewById(R.id.tv);//获取控件左上角距离屏幕边缘固定的X,Y轴距离。 int[] i=new int[2]; tv.getLocationInWindow(i); int windowX=i[0]; //距离屏幕的X轴距离 int windowY=i

2016-10-20 22:56:32 628

转载 AsyncTask

在Android应用开发的过程中,我们需要时刻注意保证应用程序的稳定和UI操作响应及时,因为不稳定或响应缓慢的应用将给应用带来不好的印象,严重的用户卸载你的APP,这样你的努力就没有体现的价值了。本文试图从AsnycTask的作用说起,进一步的讲解一下内部的实现机制。如果有一些开发经验的人,读完之后应该对使用AsnycTask过程中的一些问题豁然开朗,开发经验不丰富的也可以从中找到使用过程中的注意

2016-10-18 18:35:18 189

原创 整理Handler源码

主线程是怎么运行起来 是从ActivityThread的main方法开始的。//ActivityThread的main方法public static void main(String[] args) { .....省略若干行代码 Looper.prepareMainLooper(); .....省略后面若干行代码 Looper.loop(); .....省

2016-10-18 14:45:34 360

原创 NOTE

1,关于文字的阴影:在布局文件中的控件设置shadowCollor(背景色);shadowDx,shadowDy(x,y坐标的偏移量),shadowRadius(偏移角度)。2,去除标题栏: manifest清单文件中:<application android:allowBackup="true" android:icon="@drawable/ic_launche

2016-10-03 21:54:59 790

转载 PackageManager

一、PackageManager的功能:1、安装,卸载应用 2、查询permission相关信息 3、查询Application相关信息(application,activity,receiver,service,provider及相应属性等) 4、查询已安装应用 5、增加,删除permission 6、清除用户数据、缓存,代码段等 二、PackageManager相关类和方法介

2016-10-03 13:37:28 336

转载 JSON

JSON:JavaScript 对象表示法(JavaScript Object Notation)。独立于语言和平台,比 XML 更小、更快,更易解析。如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握。Android平台自带了JSON解析的相关API,可以将文件、输入流中的数据转化为JSON对象,然后从对象中获取JSON保存的数据内容。Android的JS

2016-10-02 20:38:02 261

原创 Dialog对话框以及自定义Dialog

Android中的对话框形式大致可分为五种:分别是一般对话框形式,列表对话框形式,单选按钮对话框,多选按钮对话框,自定义对话框。在实际开发中,用系统的对话框会很少,因为太丑了,美工不愿意,多是使用自定义对话框。当然学会系统的,自定义就简单了,所以我们先来学习系统的,后面在写一篇自定义对话框。一般对话框:不多说先上图:代码:[java]

2016-10-02 19:36:43 722

原创 AQWS_NOTE

文字阴影部分:布局文件中添加shadow属性。去除标题栏:在清单文件中的application修改theme属性,添加在style中添加truePackageManager:包的管理者,可以获取清单文件中的所有信息。PackageManager  pm=getPackageManager();//构造包管理实例 getPackageName();获取应用程序包名PackageInf

2016-10-01 22:34:57 230

原创 javaScript

JavaScript分为三部分ECMAScript:DOM:文档对象模型 Document  object  model(整合js和html和css)BOM:浏览器对象模型 Broswer  object model(整合js和浏览器)JavaScript在开发中绝大数情况是基于对象的,也就是面向对象的。ECMAScript基础://在页面上使用script

2016-09-28 23:17:04 401

原创 HTML

HTML:HyperText Markup Language   超文本标记语言(HTML还有一些其他语言到W3Cschool去详细看)HTML是用于展示网页内容的1,超文本:超链接2,标记语言:由标记(标签)构成的语言,就像XML。工作流程: 浏览器根据URL发送请求给服务求;服务器给浏览器响应,并发送HTML代码;然后浏览器解析服务器响应回来的HTML代码,生成界面。

2016-09-28 19:26:53 230

原创 Java TCP/IP

TCP/IP协议是目前世界上应用最为广泛的协议。是以TCP和IP为基础的不同层次上多个协议的集合。也称:TCP/IP协议族 或 TCP/IP协议栈TCP:Transmission  Control   Protocol    传输控制协议IP : Internet  Protocol互联网协议TCP/IP分为5层应用层 HTTP超文本传输协议

2016-09-27 18:59:21 381

原创 java nio

从JDK1.4开始,引入了新的I/O类库,位于java.nio包中,其目的是在于提高I/O操作的效率。java.nio包引入了4个关键的数据类型:1  Buffer:缓冲区,临时存放输入或输出数据2  Charset:具有把Unicode字符编码转换为其他字符编码,以及把其他字符编码转换为Unicode字符编码的功能。3  Channel:数据传输通道,能够把Buffer中的数据写

2016-09-27 15:59:05 191

转载 java File类

Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作。本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一下。构造函数public class FileDemo { public static void main(String[] args){ //构造函数Fil

2016-09-26 18:07:39 351

转载 TIJ_第十八章 I/O

IO流主要用于硬盘、内存、键盘等处理设备上得数据操作,根据处理数据的数据类型的不同可以分为:字节流(抽象基类为InPutStream和OutPutStream)和字符流(抽象基类为Reader和Writer)。根据流向不同,可以分为:输入流和输出流。  其中主要结构可以用下图来表示:                                                      

2016-09-26 15:23:12 263

转载 java Pattern和Matcher——用于匹配和查找字符串中的内容

结论:Pattern与Matcher一起合作.Matcher类提供了对正则表达式的分组支持,以及对正则表达式的多次匹配支持. 单独用Pattern只能使用Pattern.matcher(String regex,CharSequence input)一种最基础最简单的匹配。Java正则表达式通过java.util.regex包下的Pattern类与Matcher类实现(建议在阅

2016-09-26 14:12:00 9645

原创 TIJ_第十四章 类型信息

RTTI:运行时类型信息(Run-Time Type Identification)识别对象和类的信息,有两种方式:1:传统的RTTI,它假定我们在编译时已经知道了所有的类型。2:反射机制,它允许我们在运行时发现和使用类的信息。类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并编译了一个新类,就会产生一个Class对象(更恰当的说,是被保存在一个同名的.class文件中

2016-09-24 22:44:11 268

原创 TIJ_字符串

String对象是不可变得,String类中每一个看起来会修改String值的方法,实际上都是创建了一个全新的String。每当把String对象作为方法的参数时,都会复制一份引用,而该引用所指的对象其实一直待在单一的物理位置上,从未动过。String类最长用的方法是toString()和append()。String s1="a";String s2="b";String s

2016-09-24 19:43:51 416

原创 TIJ_工厂方法

工厂模式简单的讲就是用工厂方法代替了new的操作,在通俗点就是说,你new一个对象的时候直接调用工厂方法就行了,在编程时,需要定义一个工厂接口,由不同的的子类去实现,再定一个具体工厂类,定义一个产生实例的方法,我们通过这个方法来获得实例就行了。工厂模式主要的功能是可以简化或者说是统一化创建对象,便于扩展和维护。例如:1:定义一个接口A,A里面有一个抽象出来的公共call( )方

2016-09-24 14:18:35 439

原创 TIJ_策略设计模式

import java.util.Arrays;public class Test2 {public static void get(Processor p,Object input){System.out.println(p.name());System.out.println(p.process(input));}public static String s="Happ

2016-09-24 10:40:49 227

原创 TIJ_16章 数组

对数组的基本看法:通过使用整形索引值访问它们的元素,并且它们的尺寸不能改变。数组与其他种类的容器之间的区别有三个方面:效率,类型,保存基本类型的能力。在java中数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性序列,这使得元素访问速度非常快。缺点是数组大小固定,并且在其生命周期内不可改变。(除非创建一个长度大于此数组的新数组,然后把元素依次复制给新数组,然后

2016-09-23 21:49:55 221

转载 java容器类

Java容器类Collection、List、ArrayList、Vector及map、HashTable、HashMap区别 Collection是List和Set两个接口的基接口 List在Collection之上增加了"有序" Set在Collection之上增加了"唯一" 而ArrayList是实现List的类...所以他是有序的. 它里

2016-09-23 20:29:16 230

原创 java内存,对象的创建

JDK:Java程序设计语言,java虚拟机,java API统称JDK(Java Development  Kit)JRE:Java  API和java虚拟机的统称 CPU:Central Processing Unit(中央处理器)GPU:Graphics Processing Unit(图形处理器)APU:Accelerated Processing Unit(加速处理器)

2016-09-20 22:27:22 297

原创 整理Java面向对象编程的笔记

第三章:数据类型和变量基本数据类型数据类型 在内存占用字节数默认值boolean 占1个字节flasebyte 占1个字节 0short 占2个字节0int 占4个字节 0long 占8个字节 0char 占2个字节 "\u0000"float 占4个字节0.0Fdouble 占8个字节0.0DString字符串,

2016-09-12 22:45:54 1582

原创 翻译

Aaidl:Android Interface definition language  安卓接口定义语言BCCompat:兼容Ddefinition 定义EFGHIJKLMmessenger:信使NOPprocess:进程QRRemote:远程recycle:回收利用,重复利用Ssync:同步

2016-09-11 17:44:24 366

转载 关于AIDL的跨进程通信

AIDL的使用:最常见的aidl的使用就是Service的跨进程通信了,那么我们就写一个Activity和Service的跨进程通信吧。 首先,我们就在AS里面新建一个aidl文件(ps:现在AS建aidl不要求和Java包名相同了):package aidl;interface IMyInterface { String getInfor(String s);}123

2016-09-11 14:55:46 272

转载 Intent

Intent组件虽然不是四大组件,但却是连接四大组件的桥梁,学习好这个知识,也非常的重要。一、什么是Intent1、Intent的概念:Android中提供了Intent机制来协助应用间的交互与通讯,或者采用更准确的说法是,Intent不仅可用于应用程序之间,也可用于应用程序内部的activity, service和broadcast receiver之间的交互。Int

2016-09-10 12:39:43 411

空空如也

空空如也

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

TA关注的人

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