mesh

Visualizing wave interference using FireMonkey(很美)

不羁的心 提交于 2020-05-07 16:38:50
Visualizing wave interference using FireMonkey By: Anders Ohlsson Abstract: This article discusses how you can generate your own dynamic 3-dimensional mesh for visualizing wave interference using Delphi XE2 and FireMonkey. Prerequisites! This article builds on my previous article "Visualizing mathematical functions by generating custom meshes using FireMonkey" . The wave function The wave function we'll use in this article is: f(x,y) = A*sin(1/L*r-v*t) where: (x,y) = observation point A = amplitude L = wave length r = distance between wave center and observation point v = velocity of wave

从零开始手敲次世代游戏引擎(七十九)

北城余情 提交于 2020-05-07 16:15:49
一晃又一年过去了。。。 即便这样,如我在系列开头所说,这个系列我是不会放弃的,虽然可能会很慢,但是我会努力继续下去。 因此,今天更新一篇。 其实在这一年当中我对图形部分在不断进行重构。其中一个重点就是对应DX12/Vulkan/Metal的PSO(Pipeline State Object)概念。虽然3个图形API的PSO概念在实现细节方面并不是完全一致,但是大致的概念是共通的:将GPU的管道状态,包括 渲染管道入口处的,附属在vertex(顶点)处的属性layout; 渲染管道出口处的RT/DT的格式 固定功能(Fix Function)的设置,如 深度测试是否有效,深度测试的比较函数(>, >=, ==, <, <=, always true, always false) Stencil测试是否有效,相关测试 Shader的绑定 这些主要的概念。 其实,这基本上就对应现代GPGPU当中的Context,也就是上下文的概念。在以往,特别是诸如OpenGL这样的图形API当中,这些状态设置是混杂在绘图命令当中的,并没有单独分开进行存储。这就导致在需要改变渲染管道状态的时候,需要一系列的命令来对状态进行设置,并且: 要么每次把所有状态都重新设置一遍 要么需要在引擎当中自己跟踪状态的变化,计算出需要改变哪些设置 而DX12/Vulkan/Metal提供了PSO对象

Unity Shader Graph 实验室

二次信任 提交于 2020-05-07 13:38:27
Unity2018 Shader Graph 实验室 Shader Shader Graph Unity Tips : -- 在shader forge和amplyfy Shader节点图形化shader编程的诱惑下,unity官方终于在2018版本也推出了而自己shader节点可视化编程工具 Shaderr Graph 。本篇文章是对Shader Graph一些效果的尝试,建议学习shader的朋友也尝试下这些工具,对shader的理解会更加直观 -- 效果中自发光光晕是使用的PostProcess中bloom,须自行添加 -- 图看不清,右击在标签页中打开 -- 想要自发光更炫,Color属性节点开启HDR模式 目录 bilibili小电视 光剑 火焰卡牌 1.Bilibili小电视( []~( ̄▽ ̄)~* ) 效果 BILIBILI 节点图 节点图 效果说明 该效果主要分为三个部分: 红色部分,通过一个纹理与一个颜色相乘来作为其基础效果。 紫色部分,边缘高光,通过一个菲涅尔节点和颜色相乘赋给自发光。 黄色部分,随时间的扭曲和剔除,通过Step阶梯点和Twirl扭曲节点实现,Noise节点辅助产生扭曲条纹状效果。 节点说明 名称 说明 Fresnel 菲涅尔反射,简单来说就是表面与视角越是平行,则高光效果越明显 (Unity就不能出个中文文档吗,哭 ) http://api

Unity素材、动画设计类常用插件

让人想犯罪 __ 提交于 2020-05-07 10:57:46
1: Amplify Shader Editor Amplify Shader Editor是一款基于节点的可视化shader编辑器插件,用于制作特效的再合适不过。它提供了一个简单的开发环境,无缝地融合了Unity的UI和Shader的使用。 2: Colorful FX Colorful FX包含了大量的可定制的FX效果和全屏的camera渲染效果。对色彩纠正和图像后期处理有很大作用。 3: Mega-Fiers Mega-Fiers是一个可以让Mesh发生的形变的插件。 4: Surforge Surforge能够帮你在Unity内部快速制作3D模型的texture。 5: NGUI: Next-Gen UI 相信这款插件不用做太多介绍,Unity中制作UI的最强插件。 6: Octave3D-Level Design Octave3D-Level Design帮助Unity开发者制作关卡。 7: UBER – Standard Shader Ultra UBER – Standard Shader Ultra可以帮助开发者制作3A级别的shader。 8: UMotion Pro – Animation Editor UMotion Pro是Unity中一款非常优秀的动画制作插件。 9: Mesh Baker Mesh Baker可以用来合并Mesh和Materials

服务化的未来--ServiceMesh?

不打扰是莪最后的温柔 提交于 2020-05-06 02:34:42
微服务之后什么最火?毫无疑问ServiceMesh。 目前各个大厂都在Mesh化,Mesh的前身是Side Car模式,随着互联网时代/移动互联网时代以及未来IOT时代发展,互联网架构在数据量,高并发,高可用场景会面临几何倍数的增长,同时对于我们的系统也是几何倍数的挑战,我们需要在这个时间点到来之前将我们的系统提前进化,于是CNNF,Service Mesh成为了服务化的未来。 系统服务化之后,服务间通信需要关注什么: 服务发现 负载均衡 路由 流控 通信可靠性 弹性 安全 监控,日志 API 网关 API网关可以集中式的管理这些功能,但是会出现单点故障,并且实现起来网关会变得越来越臃肿。 并且网关是一个集中式的处理,Service Mesh是网络通信基础设施,可以将网络功能从代码中剥离出来。 通过Service Mesh不用在服务代码中实现用于可靠性通信的模式或断路,超时等控制。 Service Mesh是一个专门的软件基础设施层,和主进程独立,通过(HTTP,GRPC)进行代理通信,用于控制和监控微服务应用程序中服务到服务的内部通信,让服务到服务通信变得快速,安全,可靠。 通常分为:数据层和控制层。 服务开发者不会意识到Service Mesh的存在,平台工程师则通过这套新的工具,以确保可靠性,安全性和可见性。 我们可以将Service

HOG matlab练习

做~自己de王妃 提交于 2020-05-05 13:39:25
matlab练习程序(HOG方向梯度直方图) HOG(Histogram of Oriented Gradient)方向梯度直方图,主要用来提取图像特征,最常用的是结合svm进行行人检测。 算法流程图如下( 这篇论文上的 ): 下面我再结合自己的程序,表述一遍吧: 1.对原图像gamma校正,img=sqrt(img); 2.求图像竖直边缘,水平边缘,边缘强度,边缘斜率。 3.将图像每16*16(取其他也可以)个像素分到一个cell中。对于256*256的lena来说,就分成了16*16个cell了。 4.对于每个cell求其梯度方向直方图。通常取9(取其他也可以)个方向(特征),也就是每360/9=40度分到一个方向,方向大小按像素边缘强度加权。最后归一化直方图。 5.每2*2(取其他也可以)个cell合成一个block,所以这里就有(16-1)*(16-1)=225个block。 6.所以每个block中都有2*2*9个特征,一共有225个block,所以总的特征有225*36个。 当然一般HOG特征都不是对整幅图像取的,而是对图像中的一个滑动窗口取的。 lena图: 求得的225*36个特征: matlab代码如下: clear all; close all; clc; img=double(imread('lena.jpg')); imshow(img,[]); [m n]

UGUI源码分析:Image与RawImage的区别

被刻印的时光 ゝ 提交于 2020-05-04 18:56:29
系列 UGUI源码分析系列总览 相关前置: UGUI EventSystem源码分析 Graphic源码分析 UGUI MaskableGraphic源码分析,RectMask2D与Mask的原理 文章目录 系列 RawImage Image Mesh Material Raycast RawImage BaseClass: MaskableGraphic Interface: None Intro: 顾名思义,Raw,未加工的图片。 谈及RawImage,便会想到Image。两者都是继承自MaskableGraphic,但RawImage的实现相比较于Image(1200+行)简单了非常多。 RawImage 仅仅只重写了 Graphic 中的 OnPopulateMesh (详情见Graphic源码分析),提供了一个 Rect变量 来使用户可以 自定义UV的坐标 。 protected override void OnPopulateMesh(VertexHelper vh) { Texture tex = mainTexture; vh.Clear(); if (tex != null) { var r = GetPixelAdjustedRect(); var v = new Vector4(r.x, r.y, r.x + r.width, r.y + r.height);

基于图像的单目三维网格重建

我们两清 提交于 2020-05-04 14:28:23
点击上方“ 3D视觉工坊 ”,选择“星标” 干货第一时间送达 代码地址:https://github.com/ShichenLiu/SoftRas 论文题目:Soft Rasterizer: A Differentiable Renderer for Image-based 3DReasoning(CVPR2019) 概述 渲染通过模拟图像形成的物理过程来缩小二维视觉和三维场景之间的差距,通过反转这种渲染器,人们可以得到一种从二维图像中推断三维信息的学习方法。然而,光栅化阻止了渲染过程变成一个可微操作。 与目前最先进的可微渲染器不同,作者提出了一种真正可微的渲染框架,它可以直接使用可微函数渲染着色网格,并将有效的监督信号从不同的图像表示形式(包括轮廓、阴影和彩色图像)反向传播到网格顶点及其属性。 该框架的关键是一个新的公式,它将渲染视为一个聚合函数,将所有网格三角形关于渲染像素的概率贡献融合在一起并且使得框架能够将梯度流到被遮挡的和远距离的顶点,这是以前的技术所无法实现的。结果表明,利用该渲染器可以在质量和数量上对三维无监督单视图重建进行显著的改进。 简介 从二维图像中理解和重建三维场景和结构是计算机视觉的基本目标之一。基于图像的三维推理关键在于找到从像素到三维属性的足够监督。为了获得图像到三维的相关性,先验方法主要依赖于基于二维关键点 / 轮廓或形状 / 外观的匹配损失

单人开发场景下的测试环境实践

让人想犯罪 __ 提交于 2020-05-04 07:24:40
在软件研发过程中,“测试环境”是部署最频繁、也是开发者使用最频繁的一种运行环境,稳定而易用的测试环境能够极大提高开发者的工作效率和幸福感。为更好的将阿里巴巴在测试环境管理方面的实践和经验跟广大开发者分享,《云效说码》策划了《阿里巴巴Kubernetes测试环境开源工具箱》系列直播视频,由阿里巴巴技术专家林帆(金戟)和郑云龙(砧木) 来为大家讲述。 本系列分享共有三节内容,本文整理自砧木的第二次分享《单人开发场景下的测试环境实践》。 【以下为分享实录,有删节】 《阿里巴巴测试环境管理概述》要点回顾 在正式开始本次分享之前,我们首先回顾一下上一次分享中我的同事金戟分享的要点。在测试环境管理中,我们主要遇到两个问题,第一个是本地与集群双向互通的问题,在阿里巴巴集团内部主要通过基于CNI(Conteinre Network Interface)机制改造Kubernetes的IP逻辑实现的“扁平化的内网IP”这个方法来解决,这种方式更适合大型集团企业。第二个问题是多人协作开发时,路由的可访问性控制问题,在阿里巴巴内部我们是通过“项目环境”与“隔离域”实现的。 程序员小黑的困扰:测试环境不稳定导致集成效率低下 本次分享,我们将把视角从阿里巴巴集团内部转向外部开发者,特别是广大开发者所在的中小团队,聊聊他们如何解决前文中提到的“本地与集群双向互通”的问题。 我们先来思考一个问题:在本地开发的时候

UE4物理模块(二)---建立物体碰撞

删除回忆录丶 提交于 2020-05-04 02:45:44
在前文中介绍了什么是物理以及如何在UE4和PhysX中进行可视化调试: Jerry:UE4物理模块(一)---概述与可视化调试 ​zhuanlan.zhihu.com 这里调试只谈到了碰撞盒(后续还会有场景查询等调试介绍),那么如何创建物体的碰撞盒呢? 碰撞既可以在3D Max中创建成.fbx文件然后导入UE4,也可以用UE4内建的模型工具进行生成。我们以示例场景中摆在桌上的雕塑为例,选中后,双击右侧Static Mesh图片就可以打开模型编辑器了,如下图: 在上面工具栏里面有一个Collision,单击后可以看到可选显示简单碰撞与复杂碰撞: 按照PhysX中的定义,物体的碰撞分为简单碰撞与复杂碰撞,复杂碰撞就是拿物体模型面片作为碰撞盒,除此之外的都是简单碰撞。 钩选简单碰撞后,可以看到类似于下图(不一定一样,因为我改过了),是比较粗糙的模型轮廓包围盒: 去掉简单碰撞,钩选复杂碰撞,会看下密密麻麻的三角面片,如下图: 这是物体的精确碰撞,也就是PhyX定义的复杂碰撞。复杂碰撞一般就是物体的模型面片本身,除非模型改变,否则碰撞就是这样;简单碰撞的花样则比较多,在上面的菜单栏里面有一个“collision”,单击后可见下拉列表如下: 包含有从Add Sphere Simplified Collision到Add 26DOP Simplified Collision共8种预设碰撞