6 水落0无痕

尚未进行身份认证

暂无相关描述

等级
TA的排名 15w+

Real-Time-Rendering 矩阵的其他变换及投影矩阵(三)

接下来我们讨论矩阵的平移、投影变换,在计算机图形学中这两种变换也及其常用。一、4x4矩阵在讨论位移矩阵前,我们需要引出4x4矩阵的相关概念。4D向量有4个分量,前三个是标准的x、y、z分量,第四个是w,有时称为齐次坐标。我们可以把齐次坐标理解为更高维度的抽象。比如2D坐标系中一个点在2D的扩展坐标齐次坐标中将有无数的点...

2019-06-25 23:31:57

Real-Time-Rendering 矩阵的线性变换(二)

上一章节讨论了矩阵的基本性质,其中提到了线性变换。什么是线性变换呢。在数学上如果满足下式,则矩阵对一个向量的变幻是线性的。一般情况下线性变换为形如:F(a)=aM。根据之前向量和矩阵的性质,显然此式满足如上两个条件。是线性的。零向量的任意线性变换结果仍是零向量。显然上述性质不存在...

2019-06-23 23:12:25

Real-Time-Rendering 矩阵(一)

接下来就是矩阵了。图形学中矩阵作为最常用的工具涉及的知识点也非常多。本文以《3D图形基础:图形与游戏开发》及《Real-Time-Rendering》书中对矩阵的知识点的讲述为基础,先做一篇矩阵概述即基础知识。一、矩阵的数学定义矩阵一般用来描述两个坐标系统间的关系。通过定义一种运算将一个坐标系中的向量转换到另一个坐标系中。行数和列数相同的...

2019-06-13 01:37:08

Real-Time-Rendering 向量

Real-Time-Rendering从第四章开始讲解图形学中常用的数学知识。由于线性代数、几何等相关知识等还给老师了。。。后面开始根据第四章的知识点并参考大学线性代数课本、3D数学基础:图形与游戏开发等书籍记下图形学中常用的几种工具及相关原理。首先肯定是向量了,对应unity中Vector2结构体与Vector3结构体。下面通过C#重新实现一个Vector3的...

2019-05-23 00:34:37

The Graphics Renderring Pipeline

开始学习计算机图形经典Real-TimeRendering啦,自己的一些学习心得和总结,以及书上的效果会慢慢总结并在unity上实现以下。这篇文章主要是对数据Real-TimeRendering前三章的总结,同时文章标题使用的该书第二章的标题。渲染管线包括三部分,应用部分,几何部分,光栅化。如下图所示。1.TheApplicationStage...

2018-12-10 00:28:22

Unity之C#注入

众所周知,Unity采用Mono实现跨平台。.Net在运行PE类型文件时(如dll,exe)会将此类文件在第一次加载时编译出IL指令集的文件,此后每次运行该程序只需将IL文件加载进内存即可。如题,实现C#的注入即实现对编译好的IL文件代码的注入。这里需要一个强大的库文件,Mono.Cecil。Mono.Cecil提供对一个PE类型文件的IL注入,适用于.net平台,同样适用于Unity生成的程

2017-03-22 17:14:27

C#之反射

最近在看反射就把获取各种常用类型变量的方法总结了一遍。C#编译时会把类的信息,变量,特性等都注册在一张表上,而基于System.Reflection下的Assembly,Type类等都可以获取这个表的内容。从而达到根据字符串获取一个类的实例,方法,变量,委托,事件等,以上行为即是我理解的C#的反射过程。代码如下:一个随意定义的待测试类和通过反射获取各种类型变量的逻辑。usingSys

2017-03-08 16:22:20

算法之求两个数组各任意一位相加和组成的新数组中的前k位

输入时两个整数数组,他们任意两个数的和又可以组成一个数组,求这个和中前k个大的数。如题,首先想到的暴力排序,把两个数组能相加得所有数放入一个新的数组,然后用各种排序,假设第一个数组长m,第二个数组长n。若用快速排序或堆排序等较快的排序。时间复杂度为o((log2(m+n))*(m+n)),空间复杂度为o(m+n)。显然我们只需要前k个大的数,并不需要存储所有相加得到的和,当k足够小时,空间有一

2016-11-20 21:42:53

求一个数的约数和其数量

约数定义:约数,又称因数。整数a除以整数b(b≠0)除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。在大学之前,"约数"一词所指的一般只限于正约数。约数和倍数都是二元关系的概念,不能孤立地说某个整数是约数或倍数。一个整数的约数是有限的。同时,它可以在特定情况下成为公约数。代码如下:#include#includeusingnam

2016-11-20 14:09:06

算法之反转链表

问题很简单:反转一个链表。其实就是对链表的基础操作,思路是顺着链表头结点的next指针遍历整个链表。假设链表前三个节点分别为A、B、C。1.A->next=C;2.B->next=A;以A的next节点作为判断依据即可遍历整个链表并实现前后两个节点的指针反转。虽然思路很简单,但写的时候发现C的快忘得差不多了,为了复习C我在C++工程中完全以C的代码实现的。诸如new方法我用

2016-10-25 23:27:01

算法之将字符串的部分移动

算法题:给定一个字符串,要求把字符串前面的若干个字符移动到字符串的尾部,如把字符串“abcdef”前面的2个字符'a'和'b'移动到字符串的尾部,使得原字符串变成字符串“cdefab”。请写一个函数完成此功能,要求对长度为n的字符串操作的时间复杂度为O(n),空间复杂度为O(1)。 最开始想到的就是将整个数组前移两次。符合空间复杂度O(1)。#includeusingnamesp

2016-10-17 23:14:16

算法之字符串选出第一个只出现一次的字符

好久没写了...最近打算恢复博客,尽力而为吧。给出一串字符串,返回第一个只出现一次的字符。如:输入:aabbccddeff返回:f最先想到了就是将每个字符都与所有字符对比一遍,不存在相同的则输出,时间复杂度显然是o(n2)。当时看到这道谷歌的面试题时,我想到前几天看到用异或比较二进制从而解决两个对象是否相同的问题。但异或只有偶数个相同的值才能得0,奇数个相同的值得他本身,在这道

2016-10-14 13:35:50

算法之树形结构

上班了,太忙了,标题一天一算法也去了,实在没那个时间和精力,但是算法和数据结构一定要学下去,这次说下C#实现的树形结构。树的遍历使用的先序遍历,两个类,一个是节点结构,一个是管理节点的树。采用链式存储。直接上代码。usingUnityEngine;usingSystem.Collections;usingSystem.Collections.Generic;//////文件夹

2015-11-24 16:47:33

Unity之NGUIUIButton点击事件的带参传递

最近写的游戏中UI部分用的NGUI,感觉NGUI真心没UGUI好用啊,功能封装的不全,想要什么功能还得去翻源码。比如PopList加滑动。。。今天说说UIButton的点击事件,最简单的拖动就不说了,功能很鸡肋,一是不好维护,而是很多情况下我们要动态生成一些button并且对这些button回调,NGUI中封装了一个EventDelegate类用来添加回调函数,再把很多个EventDelega

2015-10-24 11:01:10

Unity之线性渲染器

最近再做一个光线类的小游戏,时间不太够写算法的,但是不能断对算法的研究,周六日补吧~今天说说写光线的时候遇到的一个问题,在使用LineRender组件的时候,一旦在顶点数组中多加一个点从而增加一条线段的时候会发生光线头粗尾细的情况,效果很差,从网上找的资料貌似是绘制三角面片的问题,具体原因我也不太清楚,于是我打算用一堆LineRender对多个线段进行渲染,所以自己封装了一个LineRende

2015-10-22 22:12:44

一天一算法之归并排序

归并排序是3个时间复杂度为O(nlogn)唯一一个稳定的算法,不过自己没有实现出来。。。 还好别人的代码看懂了。。。 这是原文链接:点击打开链接usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceSort{ classMergeSorter { /

2015-10-20 18:58:18

一天一算法之堆排序

我所知道的三种常用的复杂度为O(nlogn)的算法有三种,快速排序,堆排序,归并排序,今天说说堆排序。首先说几个概念:1.堆实际上是一棵完全二叉树,其任何一非叶节点满足性质:任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 2.大根堆:所有节点的子节点比其自身小的堆   3.小根堆:所有节点的子节点比其自身大的堆    4.大根堆的堆顶元素就是这个堆中

2015-10-19 14:37:09

unity之通知中心

周六周日给自己放两天假,算法停两天~但是懒不能偷的,今天谈谈通知。众所周知,unity中的代码是类似脚本语言的存在,那么问题来了,类与类之间是如何通信的。第一时间想到的GetComponent函数,但这个方法我们并不知道是如何实现的,从网上得到的资料貌似这个方法性能不是很好,而且如果工程大了,里面的脚本数量上升到一定程度时,想想满天飞的GetComponent都头疼,维护起来肯定好不到哪去

2015-10-17 11:13:40

一天一算法之选择排序

今天说说选择排序。首先和昨天写到的冒泡排序做下比较,冒泡排序是两两比较前者大就交换的排序,很可能交换的次数极多,要知道交换耗费的性能是要比比较耗费的性能高的。于是选择排序在交换的次数上进行了优化。从数组开始每次取一个数与后面的数比较,存下大数的值和索引位,在比较完一次后进行交换。交换总次数相对稳定。usingSystem;//////选择排序///思想是相对于冒泡来说较少交换

2015-10-16 18:46:42

一天一算法之冒泡排序

这几天写项目,偷点懒,写个简单的。虽然冒泡排序简单,实际工程中也基本用不到,不过用来入门算法还是不错的。usingSystem;//////冒泡排序,最基本的排序///两两比较,碰到大的交换,碰到小的不变,最终大的放后面小的排到前面///由于比较次数很多,性能一般,实际用处较少///时间复杂度为n2///namespacetest{ classMainC

2015-10-15 21:04:06

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。