Unity3D教程学习
文章平均质量分 76
Unity3D教程学习
别志华
这个作者很懒,什么都没留下…
展开
-
Unity3D - Shader - 坐标空间变换
坐标空间变换原创 2017-12-26 23:22:20 · 1693 阅读 · 0 评论 -
Unity3D - Shader - 模型、世界、观察、裁剪空间坐标转换
一个顶点要经过多个坐标空间的转换才能够被画到屏幕上。原创 2017-12-28 21:53:56 · 18591 阅读 · 8 评论 -
Unity3D - Shader - 渐变纹理
使用渐变纹理来控制漫反射控制。// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'Shader "Unity Shaders Book/C原创 2017-11-26 11:54:42 · 1115 阅读 · 0 评论 -
Unity3D - Shader - 遮罩纹理(mask texture)
遮罩纹理(mask texture),允许保护某些区域,免于某些修改。使用遮罩的流程:通过采样得到遮罩纹理的纹素值,然后使用其中某个通道的值来与某个表面属性进行相乘,这样当通道的值为0时,可以保护表面不受该属性的影响。总而言之,使用遮罩可以让美术人员更加精确地(像素级)的控制模型表面的各个性质。// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MV原创 2017-11-26 12:47:17 · 6960 阅读 · 0 评论 -
Unity3D - Shader - Unity Shader 的渲染顺序
实现透明效果的两种方式:透明度测试(Alpha Test),这种方法无法得到真正的半透明效果。透明度混合(Alpha Blending)深度缓冲用于解决可见性(Visibility)问题,它决定那个物体那些部分会被渲染在前面,那些部分会被遮挡。其思想是:根据深度缓冲中的值来判断该片元距摄像机的距离,当渲染一个片元时,需要把它的深度值和已经存在于深度缓冲中的值进行比较(开启了深度测试)原创 2017-11-29 22:37:46 · 3760 阅读 · 0 评论 -
Unity3D - Shader - 透明度测试
透明度测试:只要有一个片元的透明度不满足条件(通常是小于某个阈值),那么它对应的片元就会被舍弃。被舍弃的片元不会再进行任何处理,也不会对颜色缓冲区产生任何影响。否则就会按照普通物体进行处理。原创 2017-11-30 23:36:29 · 636 阅读 · 0 评论 -
Unity3D - Shader - 透明度混合
透明度混合:此方法可以得到真正的半透明效果。它会使用当前片元的透明度作为混合因子,与已经存储在混合颜色缓冲区中的颜色值进行混合,得到新的颜色。此外,透明度混合需要关闭深度写入(ZWrite Off),这需要小心物体的渲染顺序。混合需要使用Blend命令: 语义 描述 Blend Off 关闭混合 Blend SrcFactor DstFactor 开启原创 2017-12-01 19:55:23 · 5317 阅读 · 0 评论 -
Unity3D - Shader - 开启深度写入的半透明效果
关闭深入写入后会引发错误的排序情况。原创 2017-12-01 20:11:16 · 6168 阅读 · 0 评论 -
Unity3D - Shader - ShaderLab的混合命令
混合是如何实现的?当片元着色器产生一个颜色时,可以选择与颜色缓存中的颜色进行混合。混合与两个操作数有关系:源颜色(Source Color)和目标颜色(Destination Color)。源颜色,用S表示,指的是片元着色器产生的颜色目标颜色,用D表示,指的是从颜色缓冲区中读取的颜色值。对他们进行混合后得到的输出颜色,用O表示,它会重写入到颜色缓冲中。混合中的源颜色、目标颜色、原创 2017-12-05 19:35:21 · 1209 阅读 · 1 评论 -
Unity3D - Shader - 渲染过程
渲染过程渲染过程 - 通常从是三维场景出发、生成一张二维图像,由CPU和GPU共同合作完成。原创 2017-12-05 21:02:48 · 2554 阅读 · 0 评论 -
Unity3D - Shader - 顶点/片段着色器的基本结构
基本结构Shader "MyShaderName" { Properties { // 属性 } SubShader { // 针对显卡A的SubShader Pass { // 设置渲染状态和标签 // 开始CG代码片段 CGPROGRAM原创 2017-12-05 21:07:33 · 1142 阅读 · 0 评论 -
Unity3D - Shader - ShaderLab基础语法
Unity3D - Shader - ShaderLab基础语法原创 2017-12-05 21:09:39 · 1682 阅读 · 0 评论 -
Unity3D - Shader入门精要学习笔记
开始学习Shader啦~2017年12月5日 渲染过程2017年12月6日 ShaderLab基础语法2017年12月9日 笛卡尔坐标系2017年12月10日 点和矢量2017年12月15日 矩阵和变换2017年12月28日 坐标空间变换2017年12月29日 模型、世界、观察、裁剪空间坐标转换2017年12月31日 常用的Unity内置函数2018年1月2日原创 2017-12-06 19:29:09 · 1176 阅读 · 0 评论 -
Unity3D - Shader - 笛卡尔坐标系
笛卡尔坐标系原创 2017-12-09 20:48:28 · 1887 阅读 · 2 评论 -
Unity3D - Shader - 点和矢量
点和矢量原创 2017-12-10 22:02:34 · 937 阅读 · 0 评论 -
Unity3D - 使用Mesh创建弧面
Github源码效果动态创建长度固定的可调节弧度的面,效果如图:需求需要一个可以调节弧度的且长度固定的面(最多可调节至半圆型)。从官方手册中可以知道,想要使用代码来创建Mesh需要至少四个步骤:设置顶点数组(想要创建的面一共有多少个顶点)设置三角形信息(每三个顶点确定一个三角形,要顺时针的设置)设置法线信息(可以通过mesh的方法直接计算)设置UV信息(决定了图像信息如何在此Mesh上显示,原创 2017-12-13 11:21:35 · 8322 阅读 · 1 评论 -
Unity3D - Shader - 矩阵和变换
矩阵与变换原创 2017-12-15 18:12:56 · 1347 阅读 · 0 评论 -
Unity3D - Shader - 常用的Unity内置函数
UnityCG.cginc中一些常用的函数原创 2017-11-20 23:15:09 · 5385 阅读 · 0 评论 -
Unity3D - Shader - 普通纹理
普通纹理原创 2017-11-23 23:10:52 · 834 阅读 · 0 评论 -
Unity3D - Shader - 凹凸映射(Bump mapping)
凹凸映射的目的:是使用纹理来修改模型表面的法线,用于为模型提供更多细节。凹凸映射的方式:高度纹理(height map):用于模拟表面位移(displacement),也称作高度映射(height mapping)法线纹理(normal map):用于直接存储表面法线,又称为法线映射(normal mapping)。高度纹理高度图中存储的是强度值(intensity),用原创 2017-11-26 02:28:53 · 5557 阅读 · 1 评论 -
Unity3D - Shader - 基础光照
如何看到这个世界的如何产生一个图像:光线从光源(light source)中被发射出来光线和场景中的一些物体相交;一些被物体吸收了,而另一些光线被散射到其他方向。眼睛(摄像机)吸收到一些光,产生了一张图像。光线和物体相交只有两个结果,吸收和散射:散射只改变光的方向,但不改变光的密度和颜色吸收只改变光线的密度和颜色,但不改变光线的方向散射的方向:一种会散射到物原创 2017-11-14 22:40:27 · 572 阅读 · 0 评论 -
Unity3D - Shader - 实现漫反射光照模型
计算公式基本光照模型中漫反射部分的计算公式:Cdiffuse=(Clightmdiffuse)∗max(0,n^∗l^)C_{diffuse} = (C_{light} m_{diffuse} ) * max (0, \hat n * \hat l)ClightC_{light} = 入射光线的颜色和强度mdiffusem_{diffuse} = 材质的漫反射系数n^ \ha原创 2017-11-15 22:56:09 · 1099 阅读 · 0 评论 -
Unity3D - Shader - 高光反射光照模型
公式基本光照模型中高光反射原创 2017-11-16 22:52:50 · 1642 阅读 · 0 评论 -
Unity3D - Shader概述
面向GPU编程的语言有三种:1. 微软提供的基于Direct3D图形库的HLSL(High Level Shading Language)2. OpenGL ARB定义的基于OpenGL图形库的GLSL(OpenGL Shading Language)3. NVIDIA与微软合作研发的Cg(C for graphics)其中Cg能够同时兼容Direct3D和OpenGL图形接口。原创 2017-09-03 12:41:30 · 425 阅读 · 0 评论 -
Unity3D - 内建标准着色器(StandardShder)
StanderdShder是一种新增的基于物理着色的内建着色器。它有选择吸收了许多其他不同着色器的特色功能。StandardShader属性介绍: 属性 说明 Rendering Mode 渲染模式。在Opaque(不透明)、Fade(渐变)、Transparent(透明)、Cutout(镂空)四个选项 Albedo 漫反射。设置漫反射的贴图和颜色值 Metallic原创 2017-09-03 13:34:40 · 1283 阅读 · 0 评论 -
Unity3D - 创建自己的Shader
创建Shader原创 2017-09-03 22:43:53 · 4006 阅读 · 0 评论 -
Unity3D - Shader - 表面着色器(Surface Shaders)
在Unity中,包面着色器的关键代码用Cg/HLSL语言编写,然后嵌在ShaderLab的结构代码中使用。原创 2017-09-05 23:23:24 · 1972 阅读 · 0 评论 -
Unity3D - Shader - 顶点片段着色器(Vertex and Fragment Shaders)
顶点片段着色器运行于具有可编程渲染管线的硬件上,它包括顶点程序(Vertex Programs)和片段程序(Fragment Programs)。原创 2017-09-06 00:23:44 · 1674 阅读 · 0 评论 -
Unity3D-如何给AndroidMainifest.xml增加意图过滤器
如何给AndroidMainifest.xml增加意图过滤器原创 2016-09-23 19:22:05 · 842 阅读 · 0 评论 -
Unity3D 常见问题
error CS0103: The name `Analytics’ does not exist in the current contextResult原创 2017-02-22 17:08:19 · 4568 阅读 · 0 评论 -
Unity3D - Android - GooglePlay可支持设备数优化
前言公司打算对GooglPlay做ASO优化,但是我们App在GooglePlay上可支持的设备数仅有900左右,根本达不到ASO优化商的要求,故有此需求。结果经过一番文档查阅和测试后,影响GooglePlay可支持设备数的因素如下:1. OpenGL版本OpenGL版本从3.0将至2.0,大约增加了1000左右的设备数。<uses-feature android:glEsVersion="0x00原创 2017-06-16 10:39:06 · 1694 阅读 · 0 评论 -
Unity3D - 关于Shader的介绍
Unity3D使一大部分人开发游戏更简单化了。但是,有一部分仍然还有很长的路要走,就是着色器编码。着色器是专门用于运行在GPU上的程序。根本上,它就是绘制3D模型所需的众多三角形。如果你想给你的游戏特别的外观,那么,学习如何编写着色器是至关重要的。Unity也会使用它们做后期处理,这对2D游戏也是至关重要的。这篇教程会向你介绍如何编码着色器,而且主要面向对着色器一无所知的开发者。介绍下原创 2017-08-17 01:01:23 · 1490 阅读 · 0 评论 -
Unity3D - 如何引入package到指定的目录 (Is there a way to import a package to a specific folder?)
https://forum.unity3d.com/threads/is-there-a-way-to-import-a-package-to-a-specific-folder.173393/Question :I just organized my assets folder. But every time I import something, Unity just dumps原创 2017-08-16 11:41:40 · 3972 阅读 · 0 评论 -
Unity3D - Android SDK Tools 升级到26以后构建Apk报错 ( Unable to list target platforms. )
错误日志:CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details. C:/Program Files/Java/jdk1.8.0_144\bin\java.ex原创 2017-08-16 19:49:02 · 7033 阅读 · 0 评论 -
Unity3D - 摄像机(Cameras)
原文教程:https://unity3d.com/cn/learn/tutorials/topics/graphics/cameras?playlist=17102(需翻墙)在Unity中,摄像机(Camera)是一个最基础的组件(Component)。摄像机将场景中的内容展示给用户。每个场景必须有至少一个摄像机,否则我们会什么也看不到。当一个新场景被创建时,一个摄像机也会随之被创建。这个原创 2017-08-19 13:21:01 · 3266 阅读 · 0 评论 -
Unity3D - 3D坐标系(3D Coordinate System)
3D坐标系是3D游戏开发的基础概念。一般3D软件都是采用笛卡尔坐标系来描述物体的坐标信息。笛卡尔坐标系分为左手坐标系和右手坐标系:左手坐标系是Y轴指向上方,X轴指向右方,Z轴指向前方。右手坐标系是Y轴指向上方,X轴指向右方,Z轴指向后方。在Unity中使用的是左手坐标系,其中X轴代表水平方向,Y轴代表垂直方向,而Z轴代表深度。Unity有如下几种坐标系统。1,全局坐标系(原创 2017-08-25 00:23:57 · 7332 阅读 · 1 评论 -
Unity3D - 向量(Vector)
向量(又称矢量)是游戏开发过程中非常重要的概念,它是用于描述具有大小和方向两个属性的物理量,例如物体运动的速度、加速度、摄像机观察的方向、刚体受到的力都是向量。原创 2017-08-26 22:41:40 · 2787 阅读 · 0 评论 -
Unity3d - 四元数(Quaternion)
四元数包含一个分量和一个三维分量,四元数Q可以记作: Q=[w,(x,y,z)]在3D数学中使用单位四元数来表示旋转,对于三维空间中旋转轴为n,旋转角度为a的旋转,如果用四元数表示,四个分量分别是: w = cos(a/2) x=sin(a/2)cos(Ax) y=sin(a/2)cos(Ay) z=sin(a/2)cos(Az)其中cos(Ax)、cos(Ay)、co原创 2017-08-27 12:52:52 · 1204 阅读 · 0 评论 -
Unity3D - MonoBehaviour & GameObject
Unity中所有使用C#编写的脚本都应该继承自[MonoBehaviour]原创 2017-08-27 13:44:05 · 1083 阅读 · 0 评论 -
Unity3d - Transform & Time & Mathf & Coroutine(协同程序)
TransformTransform组件控制游戏对象在场景中的位置、旋转和大小比例,每个游戏对象都包含一个Transform组件。成员变量: 成员变量 说明 position 世界坐标系中的位置 localPosition 父对象局部坐标系中的位置 eulerAngles 世界坐标系中以欧拉角表示的旋转 localEulerAngles 父对象局部坐标系中的欧拉原创 2017-08-27 16:48:57 · 1242 阅读 · 0 评论