- 博客(27)
- 收藏
- 关注
原创 Csharp进阶之反射
元数据(又称中介数据,中继数据)就是用来描述数据的数据,描述信息资源或数据等对象的数据。这个概念不仅仅用于程序上,在别的领域也有元数据。主要是描述数据属性的信息,用来支持如指示存储位置、历史数据、资源查找、文件记录等功能。可以在不能完整的了解对象时,用使用对象。程序的元数据是什么?程序中的类,类中的函数、变量等等信息,它们保存在程序集中。在.Net框架中,把元数据类比成属性。就很容易理解了。一个运行的程序查看本身或者其它程序的元数据的行为就叫做反射。不理解没关系,我们换种说法,程序正在运行时,可以。....
2022-07-29 23:39:24
947
3
原创 11.Post Processing
什么是后处理技术?如果你熟知PS,那么你应该知道什么是滤镜,后处理技术就像滤镜一样。打开69scene,想想为什么这里会黑屏呢?因为_MainTex没有设置到renderedimage上,也就是说纹理在摄像机中渲染了,但是没用到屏幕上。怎么办呢?注意Scene69RenderImage脚本,这里有一个CurShader(Cursorshader),我们将原图传到这个shader里处理,然后渲染到屏幕上。方便的是,在unity中我们就有这样一个函数OnRenderImage来做这件事。......
2022-07-25 12:36:25
733
原创 如何实现关卡切换黑屏遮罩
昨日看到一个效果,就是关卡结束可以有一个logo遮住关卡的效果,如下使用。...
2022-07-23 20:17:35
257
原创 10.Volumetric Shaders
体积渲染技术,是可以应用在一个形状里再画一个shap。从正方体网格表面发射射线,碰到球表面像素(假想)变色。只着色视角方向的像素。创建一个射线从摄像机出发到达片元的世界坐标.从表面向内部按照steps。直到碰到所画图形表面。1000.0175。......
2022-07-23 20:08:14
727
原创 7.Surface Shaders
描述一种光学现象,当光线照射到物体表面,一部分反射,一部分进入物体内部发生折射或散射。生活中的例子,就是你在湖上,看到脚下的水是透明的可以看到水下,远处的水却波光粼粼看不到水下。几乎所有物体都有这样的菲涅尔效果。在实时渲染中常用来根据视角方向控制反射程度。真实世界的菲涅尔反射公式比较复杂,这里有两个应用比较著名的近似公式。Schlick菲涅尔公式Fschlick(v,n)=F0+(1−F0(1−v⋅n)5Fschlick。...
2022-07-21 20:03:00
310
原创 6.Vertex Shaders
漫反射光照符合兰伯特定律(Lambert’slaw)反射光线的强度与表面法线和光源方向之间。漫反射是指入射光线被物体表面反射到各个角度,所以反射角度是不确定的,防止点乘为负(被来自后面的物体照亮),所以要截取到0。这里乘以0.01是因为square的scale是100。通过入射角度可以确定反射光线的强度。n是表面法线,I是指向光源的单位矢量,这里是n到I的投影。...
2022-07-21 20:02:02
185
原创 5.Textures
直接用pos的情况是,某个点的颜色是可以不通过纹理知道的。另外,如果直接通过tex2d将pos替换uvvalue也是可以的,但是这样就变得不可控了(tiling和offset没用了),所以应该让uv去适应pos。用pos来表示模型点的位置,uv来表示纹理的位置,让uv匹配到pos上。这里要说明,uv是可以超过[0,1]的,但是一般取值是[0,1],超过这个范围就有另一套算法,并不是不能超过。也就是这里是在操作纹理,所以需要一个将uv转换到pos,再去求每个位置是什么像素,从uv上面去取像素。...
2022-07-18 11:03:56
172
原创 4.Noise
此时得到的有可能是[0.25,0.3]这种在[0,1]范围内的值,但也有可能超出了[0,1]范围,那么需要对范围外的值进行处理。比如uv坐标为[0.25,0.3],纹理的宽高为[256,256],那么相乘可得到[64,76.8]。,如果你需要纹理往右移,则你需要把窗口向左移,用u–0.5而不是u+0.5。将uv坐标经过处理变换后,根据实际的纹理尺寸,转化为纹理空间坐标。由此可以得到,要想让纹理向上跑,那么窗口就要下移,uv上面需要减。比如旋转平移缩放,...
2022-07-18 11:02:48
190
原创 3. Shaping Functions Part.2
0,0)−>(1,1)(−0.5,−0.5)−>(0.5,0.5)所以i.uv可以完全将pos替换,完全可以变成如何用UV表示pos呢?让中心变成(0.5,0.5)
2022-07-16 12:33:16
208
原创 麻将为什么是顶级随机设计?
也就是炉石玩家输了就会有输了的挫败感,负反馈,而麻将不一样,麻将不断提供一种上瘾似得正反馈,因为即便你输了,你也可以想,别人可不知道我是因为追求大胡放弃了小胡,如果我上一把追求小胡,我早就赢了!提出这个问题,主要是在问猴叔麻将怎么算肉鸽的时候,猴叔说,“随机产生关卡,麻将的牌就是关卡,随机产生到每个人手里的,而且这是顶级随机做法,是一种“随便啥都能玩”而不是“运气好才能玩”的随机。比如,我的卡组里带了这张牌,当我神抽了这张牌,我就赢了,如果我没有神抽,直接就输了。...
2022-07-14 19:11:58
392
原创 1.Introduction
本课程是讲Unity Shader,主要分为五个部分:1—5 关注片元着色器6 开始关注顶点着色器 灯光7 表面着色器8 高级效果,low polygon mesh runtime和unity stencil buffer9 透明效果10 体积着色器 云效果11 后处理技术(用在渲染之后12 URP渲染管线13 shader graph14 回顾总结When we create a variable we need to give the variable a type:CG is strongly typ
2022-07-14 18:47:54
253
原创 浅谈设计模式
什么是设计模式?设计模式有什么作用?刚开始学Csharp的时候,听说设计模式很有用,就硬着头皮去读,发现读完了,一无所获。后来对面向对象语言稍微了解了一点,再去读,还是模模糊糊,只能说按着他那样写,也不知道具体为了什么?后来一直在抄别人的代码,也想不明白为什么要这么写。唯一能记起来的词就是“解耦”,因为要解耦,所以我们才去这么做。那么什么是解耦呢?百科上是这样定义的,耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 解耦就是用数学方法将两种运动分离开来处理问题,常用解耦
2022-07-11 12:33:19
597
原创 第二章.物理
using System.Collections;using System.Collections.Generic;using UnityEngine;public class MovingSphere : MonoBehaviour{ //Vector3 playerInput; Vector3 desiredVelocity,velocity; //刚体 Rigidbody rb; //环境判断变量 bool desiredJump;
2021-12-19 15:41:32
413
转载 unity基础教程
本文来自阅读壹种念头所记录的笔记,原文地址:壹种念头原文创建一个时钟2.4掌握时间Time.time是游戏内置的时间DataTime是C#里.Net框架中现实世界时间:DataTime.Now2.5旋转指针 为了防止Arm绕着自身坐标旋转,可以添加一个父对象支点(Pivot),添加在原点,旋转他。 想要获取具体的小时,分钟,秒钟DateTime.Now.HourDateTime.Now.MinuteDateTime.Now.Second 旋转的方法Quaterni
2021-12-18 11:16:03
358
转载 子着色器&纹理混合
子着色器,通道与标签的写法&纹理混合本文来自于阅读毛星云大佬的文章的笔记和摘录。缅怀前辈。感恩。原文章链接: http://blog.youkuaiyun.com/poem_qianmo/article/details/41175585作者:毛星云(浅墨)一、子着色器相关内容 当unity选择用于渲染的子着色器时,他为每一个被定义的通道渲染一次对象 子着色器的写法如下:Subshader{ [Tags] [CommonState] Passder[Passdef...
2021-12-15 13:40:40
234
原创 PATB 1022。 d进制的a+b
1022 D进制的A+B (20 分)输入两个非负 10 进制整数 A 和 B (≤230 −1),输出 A+B 的 D (1<D≤10)进制数。输入格式:输入在一行中依次给出 3 个整数 A、B 和 D。输出格式:输出 A+B 的 D 进制数。输入样例:123 456 8输出样例:1103分析:这个题进制转换最后得数巨大,所以还是开数组来存,主要是进制转换用...
2019-03-14 22:54:06
182
原创 PATB 1036 跟奥巴马一起学编程
1036 跟奥巴马一起编程 (15 分)美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!输入格式:输入在一行中给出正方形边长 N(3≤N≤20)和组成正方形边的某种字符 C,间隔一个空格。输出格式:输出由给定...
2019-03-13 21:42:48
365
原创 基础编程6-10
6-10 阶乘计算升级版 (20 分)本题要求实现一个打印非负整数阶乘的函数。函数接口定义:void Print_Factorial ( const int N );其中N是用户传入的参数,其值不超过1000。如果N是非负整数,则该函数必须在一行中打印出N!的值,否则打印“Invalid input”。裁判测试程序样例:#include <stdio.h>void P...
2019-02-26 21:38:17
826
原创 PATB 1006 换个格式输出整数
1006 换个格式输出整数 (15 分)让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12…n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。输入格式:每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。输出格式:每...
2019-02-22 16:01:24
109
原创 PATB 1010一元多项式求导
题目时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余...
2019-02-19 22:41:37
96
原创 PATB 1008 数组元素循环右移问题
1008 数组元素循环右移问题 (20 分)一个数组A中存有N(&amp;gt;0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(≥0)个位置,即将A中的数据由(A0 A1 ⋯AN−1 )变换为(AN−M ⋯AN−1 A0 A1 ⋯AN−M−1 )(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数...
2019-02-19 18:14:08
399
原创 PATB 1005. 继续(3n+1)猜想
题目时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者CHEN, Yue卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对n=3进行验证的时候,我们需要计算3、5、8、4、2、1,则当我们对n=5、8、4...
2019-02-17 17:18:47
114
原创 1814 Problem A 剩下的树
问题 A: 剩下的树时间限制: 1 Sec 内存限制: 32 MB题目描述有一个长度为整数L(1&lt;=L&lt;=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,…,L共L+1个位置上有L+1棵树。现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。可能有...
2019-02-12 19:59:57
146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人