- 博客(35)
- 收藏
- 关注
原创 总结一些编程的感悟
听从主程的建议,让我多写代码,于是打算从零开始完整的写一个2d横版动作游戏,总结一些遇到的小问题。对于物体实际状态,不应该依赖外部自己创建的变量现在,打算写一个暂停的界面,根据esc按键来判断一个界面是否显示,很容易想到如下代码if(keydown(escapae)){ if(m_isPause){ PausePanel.Hide(); } else{ PausePanel.Show(); }}这时需求来了,需要在暂停界面上增加一个按钮来直接关闭,你可能会在上面的代码增加
2020-07-26 23:26:44
204
原创 关于对RectTransformUtility.ScreenPointToWorldPointInRectangle,ScreenPointToLocalPointInRectangle的理解
相对于父级的rectTransfrom的锚点的相对位置,overlay模式下,第三个参数应该设置为nullRectTransformUtility.ScreenPointToLocalPointInRectangle(RectTransform rect, Vector2 screenPoint, Camera cam, out Vector2 localPoint)
2020-07-07 19:23:59
1848
原创 unity 一些 trick代码
//ping phong 运动using UnityEngine;public class AutoMove : MonoBehaviour{ public float Speed = 1.0f; public Transform PointStart; public Transform PointEnd; void Start () { transform.position = PointStart.position; } void Up
2020-07-02 12:16:58
269
原创 reflect
//探针`using UnityEngine;using System.Collections;[ExecuteInEditMode]public class ProbeController : MonoBehaviour { ReflectionProbe probe; void Start() { this.probe = GetComponent<ReflectionProbe>(); } /// <
2020-06-20 13:52:34
132
原创 Glass
public class AutoMove : MonoBehaviour{ public float Speed = 1.0f; public Transform PointStart; public Transform PointEnd; void Start () { transform.position = PointStart.position; } void Update () { float delt
2020-06-19 10:23:56
124
原创 shadow
Shader "Custom/SFCustomRtShadow"{ Properties { _Color ("Color", Color) = (1, 1, 1, 1) _MainTex ("Albedo (RGB)", 2D) = "white" { } _Glossiness ("Smoothness", Range(0, 1)) = 0.5 _Metallic ("Metallic", Range(0, 1)) = 0
2020-06-19 10:09:44
101
原创 几种计算深度的办法
Shader "DepthDebug"{ Properties { _MainTex("Texture", 2D) = "white" {} } SubShader { Tags { "RenderType"="Opaque" } pass { CGPROGRAM #pragma vertex vert #pragma fragment frag #include
2020-06-06 18:36:41
3309
原创 Unity RenderTexture.GetTemporary出现莫名其妙的错误
今天遇到一个莫名其妙的bug RenderTexture.GetTemporary(width,height,0,RenderTextureFormat.ARGB32);多次使用上面的函数分配临时的内存来处理图片,最后结果不对,然后定位到最后一个函数的最后一次调用上面的函数。将它改为 RenderTexture.GetTemporary(width,height);就对了,我服了,之前还遇到unity build之后生成的图片分辨率和editor里面不一样的问题,我才实习多久啊,我leadr这么多年都没
2020-06-03 23:56:15
3311
原创 Dissolve效果代码理解
Shader "ShaderBook/15/Dissolve"{ Properties{ //表示消融程度 _BurnAmount("Burn Amount",Range(0.0,1.0)) = 0.0 //消融效果时的线宽 _LineWidth("Burn Line Width",Range(0.0,0.2)) = 0.1...
2020-05-03 21:58:38
923
原创 卡通渲染代码注解
//渲染轮廓线(描边)//五种方法: //1 基于观察角度和表面法线。即视角方向和表面法线点乘结果判断(接近0,表示面接近垂直与视角)。 //2 过程式几何。两个Pass:第一个Pass渲染背面并且让轮廓可见(顶点外扩);第二个Pass正常渲染正面。适应于大多数表面平滑的模型,不适合立方体等平整模型。 //3 基于图像处理。前面两种边缘检测就是了:直接用算子判断和使用深度和法线纹理。但如果...
2020-04-30 15:00:45
250
原创 深度加法线纹理代码注解
//摄像机代码using System.Collections;using System.Collections.Generic;using UnityEngine;public class EdgeDectionNormalDepth: PostEffectsBase{ public Shader edgeDetectShader; private Material edg...
2020-04-29 11:39:58
200
原创 Unity中shader变量的名字规范
Unity的Shader让我想起了以前被c语言的宏支配的恐惧,里面很多的变量名字都是固定的,会在其他代码中被隐式的使用,把遇到的记录下来。1._MainTex (" Base(rgb) ",2D) = “white” {}_Main_Tex会在 后处理中的Graphics.Blit(src,tempBuffer,material);中被调用,src会作为shader中的_Main_Tex,返回...
2020-04-22 00:24:59
648
原创 Shader高斯模糊代码理解。
这一节可以结合腾讯游戏学院:shader学习笔记21,和知乎问题:高斯模糊的原理是什么,怎样在界面中实现? 来理解。Shader "Custome/Chapter12/GaussianBlur" { //均值模糊:卷积核各个元素都相等,且相加为1。即卷积后得到像素值是邻域内各像素平均值。 //中值模糊:即邻域内所有像素排序后中间那个,替换掉原颜色。 //高斯模糊:使用卷积...
2020-04-16 15:08:43
325
原创 UnityShader边缘检测的理解
这一章,作者写的有点简短了,补几个链接。https://www.cnblogs.com/freeblues/p/5738987.html讲解了边缘检测的算子
2020-04-14 20:04:15
202
原创 广告牌动画的理解
注释加代码Shader "Custome/Chapter11/BillBoard" { Properties { _MainTex("Image Sequence",2D) = "white" { } _Color("Color Tint",Color) = (1, 1, 1, 1) _VerticalBillboarding("Vertical...
2020-04-12 15:47:27
142
原创 顶点动画理解
直接上代码吧//顶点动画Shader "Custome/Chapter11/Water" { Properties { _MainTex("Base Layer (RGB)",2D) = "white" {} _Color("Color Tint",Color) = (1,1,1,1) _Magnitude("Distortion Magnit...
2020-04-10 23:08:18
774
原创 Unity Shader 纹理采样UV动画代码理解
``c// Transforms 2D UV by scale/bias property#define TRANSFORM_TEX(tex,name) (tex.xy * name##_ST.xy + name##_ST.zw)上面这段代码是对uv坐标进行缩放偏移的宏,对应inspectors中的![在这里插入图片描述](https://img-blog.csdnimg.cn/20200...
2020-04-10 00:43:48
629
原创 关于对切线空间坐标轴的一点理解
最近在看乐乐姐的shader入门精要,我对切线空间坐标轴产生了疑惑,正常的u3d坐标轴切线空间坐标轴为什么要用这样的坐标系呢?以下是我的理解。1.我们在写代码的时候,需要按照xyz的顺序来写,因为我们可以根据z=1-saturate(xy,xy);算出z,所以Z是可以省略,这样做的好处是可以节约空间。2.继1.的原因,所以我们必须让Z作为表示法向量高度的轴,所以Z轴是朝外的。以上是...
2020-03-31 12:37:59
1171
原创 运算,整除,整乘,位运算,整合
向上取整:比自己大的最小整数。两个数相除向上取整:(a + b - 1) / b向下取整:比自己小的最大整数两个数相除向下取整:(a / b)四舍五入:更接近自己的整数两个数相除四舍五入:(a + b / 2)/ b向上取整2的幂int power_of_2(unsigned int v){v–;v |= v >> 1;v |= v >> 2;v |...
2020-03-11 12:09:44
93
原创 疯狂游戏笔试记录
今天参加了疯狂游戏的笔试。第一题是动态规划,仔细看了题目,写的时候发现有精度要求,然后改了,一次提交就过。第二题是扇形检测,检测一个点是否在扇形范围内,在做这题的时候我去看了看第三题,是一道图的题,我记得第一次学dfs,bfs时候就是用,数组来表示图,之后写a*算法的时候,发现有很多缺点,然后改成了,node和edge各自一个类,graph也是一个类,这样子写感觉会好很多,所以从那以后我就选择...
2020-03-01 16:50:50
990
原创 笔试题scanf 输入格式记录
2020.2.26今天写了一道很简单的题,用递归解,但是处理输入格式就花了很多时间,在答案区找了很久,发现大家写的都很复杂,既然输入函数是必须使用的,那么为什么不好好研究一下呢?第一种:[123,2,3,4,5]这种输入的处理办法 char c; int a[10000]; while ((c = getchar()) != ']') { scanf("%d", &a[...
2020-02-26 13:56:39
204
原创 一些游戏开发中遇到的好的教程
让我理解 perlin noise的文章知乎上通过value noise到PerlinNoisePerlin Noise英文版的同时也是一个好的游戏相关的论坛随机roguelike地图随机roguelike地图
2020-02-07 17:02:01
148
原创 shaderToy一段代码的的理解
经常会在shaderToy里面看到这样的代码1vec2 p=(2.0*fragCoord.xyiResolution.xy)/min(iResolution.y,iResolution.x);它其实等价于下面这段代码:2vec2 uv = fragCoord.xy / iResolution.xy2.1uv = 2.0 * uv - 1.0;if (iResolution.x &g...
2020-02-01 23:46:56
709
1
原创 ShaderToy Seascape
最近发现了一个宝藏网站shadertoy,但是打开一次要好久的时间,所以为了方便以后查阅,把代码拷贝在这里`/*“Seascape” by Alexander Alekseev aka TDM - 2014License Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Contact: t...
2020-01-31 20:38:36
228
原创 记录学习最基本的反射,漫反射
今天终于理解了游戏中物体的镜面反射和漫反射是如何实现的了,并没有我想象的那么难首先得确保物体的缩放不会影响法向量我们需要只取缩放矩阵的逆,而平移,旋转矩阵都不需要取逆,这可以通过公式推导求出,这还是有点复杂的,庆幸的是unity已经为我们提供了函数UnityObjectToWorldNormal(float3 n)漫反射可以理解为:我们从任意方向看,反射的现象都是一样的,而部分光被吸收掉...
2020-01-17 17:57:51
810
原创 一次矩阵推导的记录
以前用win32写一些简单的矩阵变换一直觉得自己矩阵理解的不错,最近unity的熟练度变得高起来了,今天用unity写一个完整的4x4矩阵变换,在写沿z轴旋转的时候发现竟然沿反方向旋转了,又上网查了重新思考了一遍,我发现我是对矩阵的左乘右乘理解错了,还学会了如何写投影矩阵.真想不去找实习,一直这样学下去啊…...
2020-01-15 18:59:33
149
原创 关于Unity,愤怒的小鸟,如何画抛物线
最近一直在学Unity,昨天,把自己写的愤怒的小鸟给老爸玩了一会,年过半百的他怎么也没有过关,还抱怨我连个指示器也没有.吸取了意见后,我打算写一个抛物线指示器,但是由于我用的是unity提供的组件,所以相关的数据没办法获得(其实是我不会…),一开始我打算让它先飞出去一次,然后画线,这样更简单,但是我又不知道如何加速动画,不然指示器出现的太慢,而且这样很占资源.于是打算用高中学习抛物线函数来模拟...
2020-01-03 18:55:15
1691
4
原创 关于Unity,Button点击无反应
问题出现的原因网上的相关原因都找了,也没有**“UI相互覆盖的问题”**,我一开始以为的"UI覆盖"问题是两个被加了button脚本的按钮相互覆盖,但是我实际运行时胜利和失败的同一位置按钮可以正常点击,而当我写了暂停相关的按钮后就出了问题.后来发现,我的暂停按钮需要一直出现在界面,所以我没有disable掉它,而我的胜利和失败界面则一开始都是为disable状态,但是我的暂停按钮和胜利界面的按...
2020-01-02 18:58:15
3566
原创 如何取消文件关联,恢复文件默认的图标,最简单的办法!!!!!
最近不小心把文件打开成txt的格式了,还没有办法该回去,去网上找了很久,有改注册表的,有去系统管理程序里面设置的,折腾了很久最后试了一个最简单的办法,这是自己试出来的,我反正没有在网上找到这样的办法solution右键对着你要恢复的文件选择打开方式然后选择其他应用然后选择记事本打开,就看可以了,反正就选择一个绝对不可能打开的"程序",比如一张图片,就这么简单.我成功了,你呢?...
2019-11-26 23:06:37
3549
原创 点积叉乘的运用与原理(整理)
大二的时候特意花了几天时间看点积叉乘,时间一久又忘了!!!这一次把之前看的代码和找的资料收集起来,下次再忘了就直接看了!!叉乘的公式记忆技巧x1 y1 z1x2 y2 z2x:【y1,开始小叉】y:【左上与右下大叉】z:【x1开始,小叉】叉乘的意义:可以判断方向性,可以算面积//我们是以A点作为dist的判断点inline bool LineIntersection2D(Vector...
2019-11-21 18:59:23
1227
原创 随机地图生成--自己的一次尝试
最近照着网上的元胞自动机随机地图生成算法自己尝试着写了一下,发现效果不是很满意local count1 = Tile_map.CheckNeighborWall(i,j)--1层墙的数量local count2 = Tile_map.CheckNeighborWall(i,j,2)--2层墙的总数量count2 = count2 - count1--count1 >=5 会向四周扩...
2019-11-20 09:47:13
2657
原创 LUA与c++交互5.3
网上基本都是5.1的自己结合看书找资料写了个5.3的顺利运行#include"lua.hpp"#pragma comment(lib,"luaLib.lib")#include"lua.hpp"static char meta[] = "array_meta";typedef struct Tag_Array{ int size; double value[1];}A...
2019-11-18 15:07:20
278
原创 鸡蛋掉落问题的误解
最近在为春招刷题,鸡蛋掉落的问题很早就听过了,我第一次听的时候是在大二的时候当时没看懂题目,以为是道很简单题目用二分就能解决,最近在leetcode上找到了这道题发现竟然是hard级别难度于是想练一练。然而我看了半天题目也依然没看懂,示例手算都算不出来,于是就放弃了。直到刚才看到有推文讲这个,于是心血来潮又看了一遍,这次换成英文版,一遍就看懂了!!大致就是"如果鸡蛋碎了你就不能再拿了"如果...
2019-11-17 22:11:20
171
原创 VScode下LUA调用CAPI问题
VScode下LUA调用CAPI问题今天一个个困扰了很久的"小问题"被解决了,不是解决了什么很难的事情就是想记录下来,之前看了很多前辈的博客,他们的用"肉身"来试错,把自己的经历写下来,我也想记录下来帮助后面的人vs...
2019-11-17 18:28:08
599
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人