cube

如何在Unity中分别实现Flat Shading(平面着色)、Gouraud Shading(高洛德着色)、Phong Shading(冯氏着色)

房东的猫 提交于 2020-01-17 16:30:24
写在前面:    先说一下为什么决定写这篇文章,我也是这两年开始学习3D物体的光照还有着色方式的,对这个特别感兴趣,在Wiki还有NVIDIA官网看了相关资料后,基本掌握了渲染物体时的渲染管道(The rendering pipe-line)流程,以及各种空间坐标系(MVP),但是在用Unity的Shaderlab写shader的时候,对于具体怎么实现各种着色有很大的疑问,决定苦心钻研一下,过了几个月吧,现在对写shader还是比较熟练的,也解决了之前的疑惑,写这篇算是一篇笔记,以后可能用到,或者初学者想参考一下都是很好的,那么言归正传。 看这篇教程所需要的基础: 有一定的shader编写基础,能看懂vertex&fragment代码。 了解3D的物体的顶点存储有什么信息。 有一定的Unity基础,能看懂基本的C#代码。 初学者,想学习这方面技术的(虽然本篇本来就很基础) 那么本篇文章正式开始 三种着色方式的区别:   物体在屏幕中每个像素点的颜色,取决于两部分,一个是物体本身顶点的信息,比如位置,法线方向,颜色等等。另一个就是着色方式,着色函数可以根据顶点然后填充中间的部分,比如说你有三个顶点,你就可以用着色函数获取一个面,至于这个面怎么显示,就有各种各样的方法,本篇讲述三种比较常见的方法。 Flat Shading(平面着色) :平面着色简单来讲,就是一个三角面用一个颜色

[AX]AX2012 商业智能分析

我只是一个虾纸丫 提交于 2020-01-16 21:13:54
分析AX的数据时常作的一件事情就是把AX的表数据导出到Excel后使用数据透视表分析,复杂点的数据可能还需要在两个数据表间先做Lookup整理数据,实际上这就是SQL server analysis服务实现的功能,它负责从数据源中获取数据,从不同维度对数据做汇总,其中最重要的概念就是Cube、Measure和Dimension。Measure是我们关注的数据,比如销售额,Dimension定义了观察数据的角度,比如销售月份、客户分组等,而Cube则是Measure和Dimension的集合。AX使用已经安装运行的SQL分析服务,所以AX的安装工具里面只有配置安装服务的选项,通过它指定分析服务器,配置信息可以在System administration>Setup>Bussiness intelligence>Anaysis service>Analysis server找到。 我们可以使用SQL server自带的分析服务工具(随SQL安装的Visual studio工具)创建Analysis service工程,添加Cube、Measure、Dimension、KPI等,编译部署到分析服务器。手工创建cube分析AX的数据是件很繁琐的事情,因为AX表之间错综复杂的关系(打开AOT/Visual studio projects/Analysis service projects

ThreeJS 服务端(node.js)渲染

爷,独闯天下 提交于 2020-01-16 07:33:17
用node.js 渲染 Three.js。 首先,安装依赖: package.json { ... "devDependencies" : { "pngjs" : "^3.4.0" , "three" : "^0.112.1" , "three-software-renderer" : "https://github.com/lanceschi/three-software-renderer.git#feature/projector-update" } , ... } 代码: const THREE = require ( "three" ) ; const SoftwareRenderer = require ( "three-software-renderer" ) ; const PNG = require ( "pngjs" ) . PNG ; const fs = require ( "fs" ) ; // Build scene with cube const width = 1024 ; const height = 768 ; const camera = new THREE . PerspectiveCamera ( 75 , width / height , 1 , 1000 ) ; camera . position . z = 10 ; const

Tensorflow(十七)模型保存与部署

此生再无相见时 提交于 2020-01-16 06:14:09
Tensorflow2.0 HDF5是keras的专有模块,和SavedModel都会被转化成签名函数。Concrete Function是一个签名函数,有固定格式的输入和输出。 最终转化成Flatbuffer,服务端运行结束。Tensorflow1.0使用checkpoint和graphdef,2.0并不推荐使用 保存:参数+网络结构 TFLite——FlatBuffer Google开源的跨平台数据序列化库 优点:直接读取序列化数据,高效的内存使用和速度,灵活兼容,使用少量代码可完成功能。 TFLite量化,参数从float变成8bit,模型大小会变原来的四分之一,将float缩放到一个区间,并取一个最接近的整数。 二 使用checkpoint保存模型和参数 三 keras模型转化为SavedModel Notebook中使用命令行工具的需要在最开始的加一个! # model是训练好的模型 tf.saved_model.save(model, "./keras_saved_graph") # 在路径下,有saved_model.pb # 命令行工具 查看model !saved_model_cli show --dir ./keras_saved_graph --all # 签名定义中会存储输入输出信息 !saved_model_cli show --dir ./keras

Kylin的概述与架构

半城伤御伤魂 提交于 2020-01-16 02:56:25
kylin概述 kylin的产生背景 Apache Kylin的初衷是解决千亿条、万亿条记录的秒级查询问题,关键是打破查询时间随着数据量成线性增长的这个规律 Kylin的工作原理 Apache Kylin的工作原理本质上是MOLAP(Multidimensional Online Analytical Processing)Cube,也就是多维立方体分析。这是数据分析中相当经典的理论,在关系数据库年代就已经有了广泛的应用。 Apache Kylin的工作原理就是对数据模型做Cube预计算,并利用计算的结果加速查询,具体工作过程如下。 指定数据模型,定义维度和度量。 预计算Cube,计算所有Cuboid并保存为物化视图。 执行查询时,读取Cuboid,运算,产生查询结果。 由于Kylin的查询过程不会扫描原始记录,而是通过预计算预先完成表的关联、聚合等复杂运算,并利用预计算的结果来执行查询,因此相比非预计算的查询技术,其速度一般要快一到两个数量级,并且这点在超大的数据集上优势更明显。当数据集达到千亿乃至万亿级别时,Kylin的速度甚至可以超越其他非预计算技术1000倍以上。 Kylin的技术架构 Apache Kylin系统可以分为在线查询和离线构建两部分,技术架构如图所示,在线查询的模块主要处于上半区,而离线构建则处于下半 区 从图可以看出,数据源在左侧,目前主要是Hadoop

apache kylin总结

人走茶凉 提交于 2020-01-15 04:39:50
去年12月挖的坑,今天找时间填上。update:20190119 一、kylin架构 核心是预计算,在此架构上做了一些优化。计算结果存储在Hbase,对Hive等查询转换为Hbase的Scan,提高速度。 缺点亦明显,先天没有AD-HOC能力 二、kylin高可用部署 Kylin的每个结点都可以部署为Job节点(build cube用)兼查询节点。并且每个节点之间对等。因此只要前面加个Nginx做请求转发即可。 Kylin支持通过增加节点水平扩容。 三、kylin on hbase vs kylin on druid 目前的 Kylin 数据存储使用 HBase,存储 Cube 时将维度值和度量值转换成 HBase 的 KeyValue。因为 HBase 不支持二级索引,只有一个行键 (RowKey) 索引,Kylin 的维度值会按照固定的顺序拼接作为 RowKey 存储,那么排在 RowKey 前面的维度,就会获得比后面的维度更好的过滤性能。 也就是说排在rowkey后面的维度查询,效率极低,因为需要scan Hbase的行数非常大,Druid可以解决这个问题。 其特点: 1)数据实时流入,毫秒级延迟即可查询。与ES有些像? 2)支持倒排索引,具有良好的过滤性能。(Hbase只支持一级索引,导致rowkey后面的维度过滤性能差) 这是其较于 Kylin On

好看的html 动画特效

元气小坏坏 提交于 2020-01-14 09:39:48
好看的html 动画特效 <div class="wrap"> <!--部署内外层图片--> <div class="cube"> <!--前面图片 --> <div class="out_front"> <img src="https://www.cnblogs.com/images/cnblogs_com/php-linux/674292/o_1.jpg" class="pic"> </div> <!--后面图片 --> <div class="out_back"> <img src="https://www.cnblogs.com/images/cnblogs_com/php-linux/674292/o_2.jpg" class="pic"> </div> <!--左面图片 --> <div class="out_left"> <img src="https://www.cnblogs.com/images/cnblogs_com/php-linux/674292/o_3.jpg" class="pic"> </div> <!--右面图片 --> <div class="out_right"> <img src="https://www.cnblogs.com/images/cnblogs_com/php-linux/674292/o_4.jpg" class="pic">

模拟ThreeJS相机

廉价感情. 提交于 2020-01-11 22:57:00
WebGL 对于我来说操作太繁琐了; ThreeJS太方便了,但是相关的数学计算也封装起来了, 但是这一部分又很重要,所以通过ThreeJS 来学习底层相机的实现。 这是一篇学习笔记,学习的内容出自: 代码 , 教程 。更多的代码也来自ThreeJS库。 WebGL本不存在相机,想的多了也就有了。 模拟ThreeJS相机 1、着色器代码 glsl.fragmentShader.js export let fragmentShader = ` uniform vec3 color; void main() { // 给此片元的颜色值 gl_FragColor = vec4(color,1.0); } ` glsl.vertexShader.js export let vertexShader = ` uniform mat4 myProjectionMatrix; uniform mat4 myModelViewMatrix; void main() { // gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0); gl_Position = myProjectionMatrix * myModelViewMatrix *vec4(position,1); } ` 2、自己模拟的相机 export

DoTween学习笔记(一)

我怕爱的太早我们不能终老 提交于 2020-01-11 08:05:50
DOTween是一个快速,高效,完全统一的类型安全的对象属性动画引擎,免费开源,大量的高级特性. DoTween兼容Unity4.5以上的版本,支持的平台: Win, Mac, Unity WebPlayer, WebGL, iOS, Android,Windows Phone 8, Windows Store, PS Vita (PSM), PS4,Xbox One平台, (下载之后放入Plugins文件夹,引入DG.Tweening命名空间就可以使用了) 官网地址: http://dotween.demigiant.com/ 下载地址: http://yunpan.cn/cdvNuC4cGkfGF 访问密码 07ec 特性: 速度和效率: 不仅非常快,而且非常有效:一切都是缓存和重用,避免无用的GC分配。 快捷: 使用扩展方法扩展公共对象用户方便编写代码如下 // Move a transform to position 1,2,3 in 1 second transform.DOMove(new Vector3(1,2,3), 1); // Scale the Y of a transform to 3 in 1 second transform.DOScaleY(3, 1); // Pause a transform's tween transform.DOPause();

U3D路径动画

こ雲淡風輕ζ 提交于 2020-01-11 02:57:41
--By木可 这个脚本可以让你在U3D内设置曲线并让物体沿着你设置的曲线进行运动。(教程最后面附源代码下载地址) 1.新建一个空的GameOject(用来存放路径点),在它的层次下新建几个Cube作为路径点,再新建一个GameOject作为运动的物体(Cube或Sqhere)。 2.为运动的物体添加SplineController脚本. 3. 如图,选中移动物体对象,打开属性面板,将存放路径点的对象Game拖曳到上一步添加脚本后预留的接口上,系统将自动计算路径,并以红色线条显示在场景中。 你可以通过改变路径点Cube位置来调整路径,或者添加新的路径点,系统都会自动计算路径,你要移动的物体将会沿着你设置的路径移动。 4. 下面介绍添加脚本后生成的接口的作用, Spline Root : 自动计算路径曲线接口。 Duration : 移动一次所持续时间,即可以控制移动速度,默认10秒。 Orientation Modern : 控制移动物体的角度、方向,可选两项: NODE:角度固定不变。 TANGENT:将与曲线正切动态改变角度。 Wrap Mode : 循环模式,可选两项: ONCE:只运行一次。 LOOP:一直循环。 Auto Strart : 是否自动计算曲线起始点。 Auto Close : 是否自动计算曲线终结点。 Hide On Execute :