4 程序乔

尚未进行身份认证

我要认证

码畜一个 没啥介绍的

等级
TA的排名 21w+

外发光Shader里 渲染轮廓的Pass里要用视角方向的相反方向

最近看很多网上外发光shader都是用两个pass的方法做的 但是我发现渲染轮廓的pass用来点乘的视角向量其实是和真正的视角向量是相反的 下面是Unity定义的UnityWorldSpaceViewDir函数中的实现但是外放光中的ViewDir是这样定义的当然上面可以直接用-normalize(UnityWorldSpaceViewDir(i.worldPos))前面加负号就行 表示反方向 但是为什么呢 原因很简单 是因为外发光pass里写的Cull Front 这里表示剔除外表面 所以看到外发光

2020-07-23 12:02:15

Phong光照模型下的逐顶点和逐像素与Blinn-Phong光照模型的对比

Phong光照模型下的逐顶点逐像素对比Phong和Blinn-Phong光照模型高光对比可以看出逐像素明显要比逐顶点顺滑很多(顶点之间的高光计算是通过线性插值计算的,而实际上高光反射部分的计算是非线性的)Blinn模型比Phong的高光区域要更大亮一点 在实际中一般都用Blinn-Phong光照Blinn光照模型计算高光反射公式//求向量h (视角方向和光照方向相加归一化)fixed3 HalfDir = normalize(viewDir+worldLight);//_LightColor

2020-07-12 23:01:03

基础shader 画圆

首先画圆需要中心点,半径,我们要做的就是判断像素点和中心点距离是否等于半径 直接上代码frag函数的核心代码//i.vertex是裁剪空间下的顶点坐标.xy就就是屏幕坐标//_MousePos中xy是原点,z是半径if (length(i.vertex.xy- _MousePos.xy) < _MousePos.z) { return col* _PointColor; } else {

2020-07-03 17:50:47

shader入门知识

Shader的语言分类:1.GLSL OpenGL语言2.HLSL DirectX语言3.CG 夸平台语言4.ShaderLab Unity中对上述语言的通用封装关于Shader中的属性代码:Shader"Mocha/01 myshader"{//这里制定Shader的名字,不要求与文件名保持一致 Properties{ //属性 _Color("Color",Color)=(1,1,1,1) //颜色float4 _Vector("Vector

2020-07-01 15:23:47

UnityShader去除像素点的两个方法(溶解)

discard和clip函数float4 frag(v2f i) : COLOR { //_Time.y%_DissolveSpeed始终小于_DissolveSpeed 保证可以循环溶解(值始终在0到1) float DissolveFactor = saturate(_Time.y%_DissolveSpeed/_DissolveSpeed); float noiseValue =

2020-06-30 16:07:56

nginx反向代理遇到的坑(深夜发博)

最近做一个项目需要用到政府内网的数据 但是由于我实在太懒 不想出差 于是就想到用nginx做一个反向代理 把服务器IP映射出来 总共有两个IP 准备用二级目录映射第二个IP时 发现了问题 总是提示什么东西丢失 后来发现问题 是因为我的这个接口是post请求 需要用到header传参 我的参数里有‘_’下划线符号 而nginx默认是会忽略掉有这个符号的参数 所以很简单只要加上下面这句命令 接触限制就好了(记得和server标签同级)...

2020-06-13 00:31:00

unity2019.3.8关于视频导入的坑

之前做项目 导入视频后用videoplayer播放发现视频总是会重复播放最后的几帧 经过研究发现不是videoplayer的锅 视频刚导入就会发现这个问题最后我猜测是因为unity版本的问题 导入视频的时候会导致中间坏帧 然后unity在视频最后用重复播放的方式把帧补回 解决方式就是换成了别的版本的unity 最后一切正常...

2020-06-10 00:24:25

循环给按钮添加点击事件(delegate)

给一个按钮列表添加点击事件 需要带参数 发现一个问题for (int i = 0; i < leftBtns.Length; i++) { //正确用法 string item = leftBtns[i].name; leftBtns[i].onClick.AddListener(delegate { ShowDescSprites(item, "left"); }); //错误用法

2020-06-04 11:14:45

Unity和安卓消息互调

最近有一个app项目 用到一个sdk 只有安卓的没有unity的所以就用unity导出一个安卓工程 然后放到androidstudio来继续开发Android 调 Unity这个很简单 参数分别是unity的 对象名,方法名,传参(参数数据类型和数量必须一样)UnityPlayer.UnitySendMessage("对象名","方法名",Params);Unity 调 Android...

2020-04-17 19:47:05

Unity Shader之简单的溶解效果(clip函数的使用)

最近在学Unityshader 发现这个clip函数真是好用clip函数会将参数小于0的像素点直接丢弃掉 比如说我们要做溶解效果 除了mainTexture可以在里面放入一张用于溶解的图 判断这张图的alpha小于某个数的像素点 可以设置一个从0到1的变量用来控制 下面是关键代码主要是fragment函数里 col是主贴图 secondTex是用于溶解判断的图片_CutOutTex是一个0到...

2020-03-29 19:22:03

和为S的正整数序列(伪完成)

刷力扣题刷到的如果数字过大会出问题 谁帮我优化一下啊 救救孩子吧public class Solution { public int[][] FindContinuousSequence(int target) { List<int> sum = new List<int>(); List<List<int&g...

2020-03-06 19:07:12

Python递归函数解决汉诺塔问题

最近初学python 写一个递归函数(汉诺塔问题)下面是代码和运行成果def move(n, a, b, c): if n == 1: print(a, '-->', c) else: move(n-1,a,c,b)#先将最大盘之上的所有盘子从a柱移到b柱 print(a,'-->',c)#然后a柱只剩一个盘...

2020-02-28 05:35:10

Azure Kinect DK+unity 踩坑(一)

做azure kinect的项目 因为是最新的设备 网上有关这个的资料很少 最恶心的是官方没有unity的sdk 官方出的是c/c++ 幸运的是在网上找到两个封装好的UnitySdk包Azure Kinect Examples for Unity.unitypackage这个可以直接unity商城里搜到 付费下载 里边有三十多种示例场景 但是不知道为什么 我只要打开捕捉人体的场景就会直接崩溃 ...

2020-02-28 00:21:45

新版SteamVR Unity Plugin的InteractionSystem

最近写VR项目的时候用到了SteamVR Unity Plugin - v2.0.1插件,感觉比之前用到的SteamVR plugin for Unity - v1.2.2版本改进了很多,就算不用VRTK插件,也能实现很多交互操作了。在此记录一下新版本插件的中的主要内容。(主要是根据InteractionSystem文档和自己的理解)这个InteractionSystem包括一系列脚本,预制件和...

2020-01-06 14:17:33

unity 连接数据库 打包问题

总共出现了两个问题问题1 打包出错把api level改成 .net 2.0问题2 打包后连接不上数据库在你的unity编辑器的这个文件里Unity Editor\2017.4.27f1\Editor\Data\Mono\lib\mono\2.0(我用的2017.4 你们看各自的版本)找到下图的三个dll库 放在项目的Plugins文件夹里...

2019-12-02 16:18:22

unity3d:激活码系统(根据PC机器码,给对应激活码完成软件注册)

1.机器码为明文,采用DES加密2.判断输入激活码与机器码的密文一致,激活成功using UnityEngine;using UnityEngine.UI;using UnityEngine.SceneManagement;using System.IO;namespace KeyScene{ public class KeyMgr : MonoBehaviour ...

2019-11-13 15:32:37

VuforiaAR 物体的坐标随摄像机晃动而变化

最近做了一个ar小游戏 塔防类的 刚开始就出现了问题 生成敌人的时候 明明再编辑器里 敌人是顺着导航网格前进的 但是在手机上随着手机的晃动 小兵的位移出现了偏差 而且我的imageTarget没有放在ARCamera里 最后找到了解决方法 更改一下AR相机的WorldCenter就好了 之前默认是Device改成imageTarget就好...

2019-11-13 13:45:35

导航报错SetDestination() can only be called on an active agent that has been placed on a NavMesh

原因:初始化导航组件NavMeshAgent 的时候,agent 离navmesh太远。isOnNavMesh属性为false;解决办法:在初始化预制体的时候,传入诞生点位置和旋转信息。GameObject.Instantiate(m_shooter, m_currBirthPoint.transform.position,m_currBirthPoint.transform.rotatio...

2019-11-11 16:06:49

Unity 人物行走的另一种写法

最近跟着UnityLearn做一个小游戏,发现官方另一种人物走法比我以往写的要更加顺滑using System.Collections;using System.Collections.Generic;using UnityEngine;public class Player : MonoBehaviour{ Vector3 p_Movement; Quaternio...

2019-10-16 15:40:09

事件管理(基于接口的事件管理)

注释写的比较全,就不多做解释了定义LIstener接口,写一个事件public enum Event_Type { Game_End,//游戏结束 Player_Dead,//血量清零 HP_Change//血量值变化}/// <summary>/// 监听器接口对象/// </summary>public interface ILis...

2019-10-22 13:20:42

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。