自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (1)
  • 收藏
  • 关注

原创

概况后进先出图解 如果要将栈中的数据取出,那么就必须按照3,2,1的顺序取出。代码解析#define STACK_SIZE 100 //栈的初始空间大小#define STACKPU 10 //一次扩充空间的大小typedef struct{ int *bottom;//指向栈底的指针 int *top;//指向栈顶的指针 int stackSize;//栈的内容大小

2017-08-12 10:09:02 274

原创 CG数据类型

概况CG语音中有7种基本数据类型,有6个是重要常用的。数据类型float 32位浮点数据half 16位浮点数据int 32位整型数据fixed 12位定点数bool 布尔数据,真假值sampler *纹理对象的句柄,分为 6 类:sampler, sampler1D, sampler2D, sampler3D,samplerCUBE,和 samplerRECT 。string,字符类

2017-08-11 17:13:53 579

原创 Shader Language

概况Shader Language称为着色语言,shader language基于于物体的属性和光照条件,计算每一个像素颜色。shader language 有cg,GLSL,HLSL。 着色程序分为vertex shader program(顶点着色程序)和fragment shader program(片段着色程序),这两个程序对应运行在GPU上的两个组件上,Programmable Vert

2017-08-10 10:26:08 424

原创 求反射向量

在使用phong模型时需要使用反射光,这里记录一下反射光的推算方法。算法在图中,O为模型顶点,也表示原点,OL为入射光方向(从顶点到光源),OR为反射光方向,ON为法向量,OD是OL在ON法向量上的投影。OR的计算过程: 在第7步中ON为法向量,只需要方向信息,所以表示为单位向量,那么ON向量的模的平方也就为1,分母被省略。 进过上面的推算后,也就能够更加明白《GPU编程与CG语言之阳春白雪下里

2017-08-09 14:56:19 421

原创 双向链表

学习了前面的单链表之后再学习双向链表就容易理解多了。概况在双向链表中,一个节点保存了它前面一个节点,和后面一个节点的索引,可以向前访问,和向后访问。 和单链表比较起来,向前访问更加的方便。单个节点 在一个节点中呢分为三个区域,第一个区域为prior用来保存前驱节点的地址,第二个区域保存节点中的数据,第三个区域next用来保存后继节点的地址,因为一个节点中保存了前驱和后继节点,那么这个节点就可以通

2017-08-09 09:44:55 260

原创 GPU图形绘制管线

作为一个新手,挣扎于unity shader不是一天两天了,后来找到了这本书,很多东西理解更加清晰了。就用博客来记录看书后的思考吧。这一章主要讲了GPU图形绘制的流程概况,学习这章后才理解了在unity中的UNITY_MATRIX_MVP的意义。 可以分为三个阶段:1.应用程序阶段在这个阶段程序将图形硬件所需要的数据都传输进图形硬件中,就如在unity shader中定义的Properties,从

2017-08-07 12:41:02 279

原创 快排方法代码记录

#include <stdio.h>#include <stdlib.h>int nums[5];int main(){ int i,j; for(i=0;i<5;i++){ scanf("%d",&nums[i]); } sort(0,4); printf("\n"); for(i=0;i<5;i++){ pr

2017-08-07 11:08:12 208

原创 unity shader 常用内置函数变量和语义

函数: float3 UnityObjectToWorldNormal(float3 norm) 把法线方向从模型空间转换到世界空间中 float3 WorldSpaceViewDir(float4 v) 返回模型空间点到摄像机的观察方向 float3 UnityWorldSpaceViewDir(float4 v) 返回世界空间中的点到摄像机的观察方向 float3 ObjSpaceVie

2017-07-26 16:51:44 510

原创 链表使用快慢指针求中间值

思想声明两个指针r,h,开始位置都为头节点,然后向后移动,r的移动速度是h 的两倍(移动速度是指跨越的节点个数比如r = r->next->next跨越了两个节点,h = h->next,跨越了一个节点)当r到达链表尾部,那么h就刚好在链表的中间。代码#include <stdio.h>#include <stdlib.h>typedef struct Node{ int data;

2017-07-04 16:09:30 284 1

原创 单链表的头插法和尾插法

头插法将第一个节点的地址保存到新节点的next中,再将新节点的地址保存到头节点的next中。void InsertTest(Linklist *L){ Linklist q; int i; for(i = 0; i < 10; ++i){ q = (Linklist)malloc(sizeof(Node)); q->data = i;

2017-06-30 15:13:35 607

原创 链表头使用指针的问题

看了小甲鱼的讲解链表的创建课程中的一个疑问:struct Node{ int data; struct Node *next;};typedef struct Node *Linklist,Node;void InitNodeList(Linklist *L,int n){ Linklist p; int i; srand(time(0)); *L

2017-06-27 15:45:35 356

原创 unity3D 代码实现自定义平面

看了LowPoly风格的图片之后被里面的海水效果深深的吸引住了,经过一番思考和借鉴后做出了这样的效果 为了自定义平面的长宽,我们需要设置顶点位置和设置三角形绘制顺序。设置顶点位置顶点的设置就按照顺序将顶点排列成为一个矩阵,就像军训的方队一样,可以横着排,竖着排,排布成为一个平面就可以啦。主要讲一下三角形的绘制。三角形的绘制一个矩形平面由两个三角形组成,像这样–》 在unity中逆时针绘制三角

2017-06-26 15:51:08 4144 2

原创 对时间复杂度的简单理解

第一部分简单来说就是忽略常数项,着重最高项。 比如说2n+1,和2n^2+1 那么我们就可以很直观的看出2n+1要快了。 但是当比较2n^2+1和5n^2+3时,可以说他们的时间复杂度是差不多的,因为当输入值n到达一个很大的数值时,他们的时间复杂度是近似的。第二部分那么怎么使用大O表示呢? 大O表示有三种表示: 1.O(1) 2.O(n) 3.O(n^m)第一个:表示的呢就是上面第一部

2017-06-16 14:21:49 2014 2

原创 OpenGL通过顶点绘制点和直线

今天学习了通过设置图形类型和设置顶点位置来绘制直线。 设置顶点位置主要这几个方法: glVertex2i(); glVertex2f(); glVertex2d(); 还有指针类型的,用来传递一个数组。 glVertex2v(); 当然把2变成3就是三维空间坐标,明天学习。设置顶点的流程:void myDisplay(void){ //设置清除对象 glClear(GL

2017-03-14 23:32:32 1316

转载 我的第一个OpenGL程序

几乎算是照着抄下来的,理解了一下窗口创建流程,和显示流程。 通过使用GLUT工具来创建窗口,然后自己设置显示函数,通过GLUT来执行定义的显示函数。#include <GL/glut.h>void myDisplay(void){ //设置清除对象 glClear(GL_COLOR_BUFFER_BIT); //通过对角线两个点的位置绘制矩形 glRectf(-0.

2017-03-13 23:14:41 440 1

原创 自定义Unity资源文件打开方式

在用Unity写shader的时候突然想设置notepad++为默认打开方式所以就写了一个小插件,下载。 效果像这样: 思路比较简单,用MenuItem,OnOpenAssetAttribute,XML来实现。第一步:用MenuItem创建右键菜单在Assets下新建一个名为tool的文件夹,在其中创建一个OpenFileWay.cs脚本public class OpenFileWay :

2017-01-19 11:10:38 3023 1

原创 使用栈实现计算四则运算

问题: 刚开始学JAVA时候写一个简易计算器是很容易的,比如说让用户输入一个表达式1+2=?,我们只需要判断给定两个int,一个String,变量就可以直接运算出来。 然而用户输入的是一个四则运算表达式呢? 比如: 2+3*2=? 3+2-1=? 2*(1+3)-6-(2/1)=? 3+(2*(1+2))=? 我们可以发现在这些算式中有两个问题: 1.算式长度不定 2.需要考虑优

2016-11-30 10:57:17 1308

原创 迷宫问题bfs解决

Description定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最

2016-06-05 14:56:40 1910

unity自定义资源文件打开方式插件

导入工程中即可使用,选中资源文件,新增两个右键菜单OpenWay,Restore Defaults OpenWay,一个添加,一个删除

2017-01-19

空空如也

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

TA关注的人

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