2018年8月28日

<Shader模块化>0.ShaderVariant和multi_compile编译Shader的多个版本

摘要: 一ShaderVarian的使用 1. 首先在CGPROGRAM 下 申明 需要多版本编译的 几个版本的key,Material同一时刻只能对应它所使用的Shader的一个variant。 #pragma multi_compile A B 如果C#代码没指定,Unity会默认使用 A这个编译版本。 阅读全文

posted @ 2018-08-28 00:17 百无禁忌 阅读(484) 评论(0) 推荐(0) 编辑

2018年7月12日

《AR系列第二篇》增加IMU追踪

摘要: 无论AR还是VR, 我们都希望我们的虚拟摄像机跟着我们的头一起动。 我们可以使用陀螺仪达到这个目的,也就是IMU追踪。 1. 导入 插件GyroDroid 2..把下面的脚本挂到我们的3D世界的摄像机上即可 using UnityEngine;using System.Collections; pu 阅读全文

posted @ 2018-07-12 15:57 百无禁忌 阅读(1065) 评论(0) 推荐(0) 编辑

2018年7月11日

《AR系列第一篇》快速使用Vuforia开发一个AR应用

摘要: 前半部分是简单介绍下,AR的模式。 后半部分是Unity的AR开发流程。 AR常用的两种控制模式: 头瞄模式:使用使用者头部的旋转来控制射线的方向,从而选择物体或者UI。 手柄模式: 使用手柄的方向来控制射线的方向,从而选择物体或者UI。 AR常用的两种显示模式: VR全景模式:不需要Mask,用户 阅读全文

posted @ 2018-07-11 10:45 百无禁忌 阅读(1005) 评论(0) 推荐(0) 编辑

《斯坦福大学:编程范式》第5节1:void*类型的使用:一个兼容所有类型的线性搜索

摘要: void* lsearch( void *key, void *base, int n, int elemSize , int (*compare)(void* a, void* b)) //这里使用函数指针 { for(int i = 0; i< n; i++) { //这里 使用了一个hack, 阅读全文

posted @ 2018-07-11 00:06 百无禁忌 阅读(193) 评论(0) 推荐(0) 编辑

2018年7月6日

《Unity Shader/AR》反畸变,解决shader中无法传入大量数组的问题

摘要: 1. 事情起因是这样的。 在制作AR的底层SDK时,需要跟硬件适配反畸变。 由于曲面光学模型,不好用简单的公式描述畸变。 所以决定把uv畸变来实现。 2. 为了效率最高,决定直接写入屏幕缓冲。 3.在摄像机后效里,无法传入大量数组,所以将数据转为texture,然后shader中对它采样,再分解为可 阅读全文

posted @ 2018-07-06 15:22 百无禁忌 阅读(725) 评论(0) 推荐(0) 编辑

2018年6月29日

对于CG和CV的一些思考。

只有注册用户登录后才能阅读该文。 阅读全文

posted @ 2018-06-29 00:03 百无禁忌 阅读(8) 评论(0) 推荐(0) 编辑

2018年6月28日

<AR> AR项目常用工具和算法介绍

摘要: 1. Vuforia 用于图形识别,高通提供的AR工具包。 2. GyroDroid v5.3 安卓苹果重力系统插件,unity3d 插件。 一般用里面的IMU来做空间的定位。 3.Google VR SDK 用于头部追踪,3D眼镜的畸变映射。 4. 除此之外,一些常用算法: 多传感器融合、IMU定 阅读全文

posted @ 2018-06-28 23:52 百无禁忌 阅读(1352) 评论(0) 推荐(0) 编辑

2018年6月25日

《斯坦福大学:编程范式》第四节3:void类型

摘要: void temp = 5; void不可以单独用来申明变量。 它的适用范围是 1:用于函数的返回值,表示不返回任何值。 2:用于 void* ,表示不知道该指针指向的具体的类型。 另外:不允许对void* 解引用,因为编译器不知道要提取出多少个字符。 但是,我们在第三节说过,对于 指向字符串的指针 阅读全文

posted @ 2018-06-25 00:52 百无禁忌 阅读(196) 评论(0) 推荐(0) 编辑

2018年6月24日

《斯坦福大学:编程范式》第三节3:* 与&的真正含义

摘要: 这一节再续写一篇。因为要足够多的例子才能说清楚*这个符号。 * ,中国翻译为“解引用”,初听很拗口,实际上是非常贴切的翻译。如果将它翻译为取值,其实不好。 我们继续举例说明: void swap(int * ap, int* bp){ ap = bp; } int a = 5; int b = 6; 阅读全文

posted @ 2018-06-24 18:48 百无禁忌 阅读(698) 评论(0) 推荐(0) 编辑

2018年6月23日

《斯坦福大学:编程范式》第三节2:大端与小端、最小寻址单位

摘要: 最小寻址单位 大端编码和小端编码 也叫 大尾存储 和小尾存储。 正如之前所说,虽然计算机的存储最小单位是 bit/位。 但是 基本数据结构 都是以 byte 作为单位。 比如 bool, 虽然理论上 我们可以用 1 bit来表示, 但计算机里,我们至少要用 1 byte(8 bit)来表示它。 最小 阅读全文

posted @ 2018-06-23 02:13 百无禁忌 阅读(1269) 评论(0) 推荐(0) 编辑

导航