Unigine mesh顶点坐标转换精度问题】的更多相关文章

本问题虽然与Unigine引擎相关,但对其他精度问题也有参考价值. 问题: 将精细模型顶点从自身参考系的相对坐标(类似4378.95020,4561.00000,31.3887463) 转到椭球面世界坐标(笛卡尔坐标,类似-2276990.2255267254,5002705.8561162204,3235626.9292423548), 再转回自身参考系相对坐标,在这个过程中,精度丢失. 解决办法: 精细模型的顶点只支持设置float型数据,因为显卡绘制double型承受不起: 在拿出顶点的数…
Skinned Mesh 原理解析和一个最简单的实现示例   作者:n5 Email: happyfirecn##yahoo.com.cn Blog: http://blog.csdn.net/n5 2008-10 月 Histroy: Version:1.02 Date:2010-1-1 修改了一些错误(用删除线标出 ),补充了一些材料, ps:本文以后只维护CSDN blog上的版本,请转载者保留原始链接:http://blog.csdn.net/n5/archive/2008/10/19/…
Mesh简化算法: 1. 通过mesh简化,可以将一个多边形的网格A转化成另一个网格B 网格B相比A,有更少的三角形面.边.顶点. 2. 简化的过程是受到一定的约束的.会有一系列自定义的质量标准来控制简化的进行.这些质量标准是为了让简化后的网格尽可能和原来的网格有相差不大的质量. 3. Mesh简化往往都是迭代的,例如每一次移除一个顶点或者一条边.并且这一过程是可以反转的,也就是可以通过优化后的网格,恢复到原网格 主要的简化算法: 1. 顶点聚集(Vertex Clustering). 按照我自…
准备灰度图 IGray.png及草地贴图 IGrass.jpg ,放入Assets下StreamingAssets文件夹中.     创建空材质,用作参数传入脚本.   脚本如下,挂载并传入材质球即可根据灰度图生成mesh.   using System.Collections; using System.Collections.Generic; using UnityEngine; //根据灰度图创建mesh地形 public class MeshTerrainCreate : MonoBeh…
在AR应用中,用户最不希望看到不真实的穿模现象发生,如虚拟形象部分身体陷入墙壁之中,或者未碰到墙壁却已无法移动,这种不真实的交互十分影响用户体验.那如何才能让避免虚拟物体的穿模问题呢?使用AR Engine的环境Mesh能力就能帮助开发者解决这个问题. 效果展示 实现方法 AR Engine提供实时计算并输出画面环境Mesh数据的能力.通过环境Mesh能力虚拟角色可以准确识别当前所处三维空间的情况,让虚拟物体不仅仅能放置在水平面和垂直面上,还可以放置在任意可重建的曲面上.开发者可利用重建的环境M…
WeTest 导读   本文作者从自身多年的Unity项目UI开发及优化的经验出发,从UGUI,CPU,GPU以及unity特有资源等几个维度,介绍了unity手游性能优化的一些方法.   在之前的文章<手游内存占用过高?如何快速定位手游内存问题>中提到,Mono内存和native内存是PSS内存主要的组成部分,mono内存更多的起到内存调用的功能,因此常常成为了开发人员优化内存的起点:而在游戏的其他的进程中,同样有很多因素影响着游戏的性能表现.本文将从UGUI的优化角度,介绍unity游戏性…
http://blog.csdn.net/candycat1992/article/details/40212735 三个月以前,在一篇讲卡通风格的Shader的最后,我们说到在Surface Shader中实现描边效果的弊端,也就是只对表面平缓的模型有效.这是因为我们是依赖法线和视角的点乘结果来进行描边判断的,因此,对于那些平整的表面,它们的法线通常是一个常量或者会发生突变(例如立方体的每个面),这样就会导致最后的效果并非如我们所愿.如下图所示:…
原地址:http://www.cnblogs.com/88999660/articles/2887078.html 几次看见有人问框选物体的做法,之前斑竹也介绍过,用画的框生成的视椎,用经典图形学的视锥裁剪就能做到.视锥裁剪资料学习:http://www.linuxgraphics.cn/graphics/opengl_view_frustum_culling.html 在unity里实现,其实很简单,因为有两个前提:1.画的方框始终是在屏幕空间进行的,而屏幕空间其实就是摄像机的视锥空间的投射了…
原地址:http://dong2008hong.blog.163.com/blog/static/469688272013111554511948/ 在unity里实现,其实很简单,因为有两个前提:1.画的方框始终是在屏幕空间进行的,而屏幕空间其实就是摄像机的视锥空间的投射了,不需要另外计算视锥.2.unity摄像机内建的功能,可以方便的把屏幕坐标和世界坐标互换. 这样最简单的画框选物体就简化成了:1.用GL在屏幕空间动态画框.2.把备选对象的transform.position用camera.…
最近在工作中碰到不少棘手的BUG,其中的一个是Spine骨骼的渲染花屏,在战斗中派发出大量士兵之后有概率出现花屏闪烁(如下图所示),这种莫名奇妙且难以重现的BUG最为蛋疼.   前段时间为了提高Spine骨骼动画的加载速度,将Spine库进行了升级,新的Spine库支持skel二进制格式,二进制格式的加载速度比json格式要快5倍以上.   这是一个大工程,游戏中所有的骨骼动画都需要使用更高版本的Spine编辑器重新导出,由于部分美术没有对源文件进行版本管理,丢失了源文件,导致部分骨骼动画要重新…
写在前面 三个月以前,在一篇讲卡通风格的Shader的最后,我们说到在Surface Shader中实现描边效果的弊端,也就是只对表面平缓的模型有效.这是因为我们是依赖法线和视角的点乘结果来进行描边判断的,因此,对于那些平整的表面,它们的法线通常是一个常量或者会发生突变(例如立方体的每个面),这样就会导致最后的效果并非如我们所愿.如下图所示:…
制作骨骼动画 我们看看这几步操作后,我们得到了那些数据: 1.每个皮肤顶点的初始世界坐标. 2.每个骨骼关节顶点的初始世界坐标. 3.每个顶点被骨骼顶点的影响信息. 4.骨骼如何移动. 骨骼动画原理 核心: 通过骨骼带动皮肤运动,也就是通过骨骼的移动动态计算mesh上的点的位置 过程: 1.将mesh上的点转换为骨骼空间上的点. 骨骼空间就是以关节为原点确定的空间,并不是一个实体. 2.通过缩放.旋转.平移将骨骼移动到新的位置. 3.根据骨骼的新位置计算mesh顶点新世界坐标(骨骼移动,但mes…
一.GPU:图形处理器,Graphics Processing Unit 显卡的处理器就是图形处理器.与CPU类似.   GPU和CPU的区别? 1.CPU主要是为了串行指令设计,GPU则是为了大规模的秉性的计算而设计. 2.从并行的角度来看,CPU并行针对于指令集并行,而GPU的并行是针对大规模运算的. 3.同样面积的芯片:CPU上更多的放置缓存和控制部件,而GPU上放置的是更多的运算单元.   二.渲染管线 渲染管线也叫渲染流水线,就是告诉GPU一堆数据,然后得到一个二维的图像. 渲染管线主…
在Unite 2017的国内技术专场,Unity技术团队为参会者们带来了Unity引擎功能相关的技术分享.今天这篇文章,将由Unity技术支持工程师金晓宇为大家分享基于Animation Instancing的人群模拟技术,对于大型MMO游戏非常实用. 在实际开发中,可能经常会遇到类似需求:一个体育场中有大量的观众,或者有成百上千的僵尸在街道上游荡.对于这些类似的需求,如果采用传统的动画方式,CPU计算骨骼和蒙皮的压力会非常大.因为每一个角色都要有一个骨骼和蒙皮的计算过程,即使他们都播放的是同一…
图形学3D渲染管线 DX和OpenGL左右手坐标系不同,会有一些差距,得出的矩阵会不一样; OpenGL的投影平面不是视景体的近截面: 顶点(vertexs) 顶点坐标,颜色,法线,纹理坐标(UV),连线索引; 图元(primitives) 几何顶点被组合为图元(点,线段或多边形),图元装配: 片元(fragments) 图元被分几步转换为片元:图元被适当的裁剪,颜色和纹理数据也相应作出必要的调整,相关的坐标被转换为窗口坐标.最后,光栅化将裁剪好的图元转换为片元; 一.顶点数据(Vertex)…
Visulalize Boost Voronoi in OpenSceneGraph eryar@163.com Abstract. One of the important features of the boost polygon library is the implementation of the generic sweepline algorithm to construct Voronoi diagrams of points and linear segments in 2D(d…
Demo 1:创建三角形 示例代码 构建一个只包含单个三角形及纹理坐标的网格 using UnityEngine; using System.Collections; public class MeshTest : MonoBehaviour { void Start() { MeshFilter mf = GetComponent<MeshFilter>(); Mesh mesh = new Mesh(); mf.mesh = mesh; mesh.vertices = ] { , , ),…
1,背景 吸入(Inhale)效果,最初我是在iOS上面看到的,它是在Note程序中,用户可能添加了一页记录,在做删除时,它的删除效果是:这一页内容吸入到一个垃圾框的图标里面.请看下图所示: =============================================================================== 这里,我要介绍的是如何在Android上面实现一个类似的效果.先看看我实现的效果图. 上图演示了动画的某几帧,其中从1 - 4,演示了图片从原始图形…
使用openGL步骤:1.创建GLSurfaceView对象2.创建GLSurfaceView.renderer实现类.3.设置activity的contentView,以及设置view的render对象.4.实现render类的过程. a.onSurfaceCreate()方法  1.设置清屏的颜色和启用顶点缓冲区  //设置清屏色  gl.glClearColor(0, 0, 0, 1);  //启用顶点缓冲区.  gl.glEnableClientState(GL10.GL_VERTEX_…
最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭哧吭哧的~ 首先列出学习参考的前人的文章,本文较多的参考了其中的表述: 1.骨骼动画详解 :http://blog.csdn.net/ccx1234/article/details/6641944,不过这篇文章的原文已经被csdn封了:D,可以看看对应的转载的文章也行 2.OpenGL10-骨骼动画原理篇:http://www.cnblogs.com/zhanglitong…
基于上一篇OpenGL的渲染原理,这两周又陆续接触了一些关于WebGL绘图的一些内容,因为刚入门,很多东西又很晦涩,所以特意花了小半天的时间整理了一下,特此记录. 一   画布和画笔:创建Canvas && 获取WebGL的Context 在开始WebGL的绘制故事之前,我们得先来认识一下Canvas,因为这玩意是我们之后绘图的基础底板:"Canvas元素创造了一个固定大小画布,并提供了一个或多个渲染上下文,用来绘制和处理要展示的内容"(摘自MDN).按照定义,我们可以…
渲染流水线 1)应用阶段(CPU处理) 首先,准备好场景数据(摄像机位置,视锥体,模型和光源等) 接着,做粗粒度剔除工作. 最后,设置好每个模型的渲染状态(使用的材质,纹理,shader等) 这一阶段最重要的是渲染所需要的几何信息,即渲染土元,渲染图元可以是点,线,三角面等. a.把数据加载到显存中 b.设置渲染状态,通俗说这些状态定义了场景中的网格是怎样被渲染的. c.调用DrawCall,一个命令,CPU通知GPU.(这个命令仅仅会指向一个需要被渲染的图元列表,并不会包含材质信息,因为在上一…
在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效果展示) 资源导出规则 所有的换装实现都是和导出规则相对应的.先说一下我这个小例子的导出规则. 1.角色的主干部分,包括头,胳膊,大腿.整体导出作为一个基础蒙皮. 2.其他部分的蒙皮,手套,下装,衣服,头发.每一种样式都一个个单独导出. 3.从MAX中导出FBX资源时,要注意导出蒙皮时候,骨骼也要选…
Point: 渲染渲染,神奇的渲染!! ———————————————— 只要你走的足够远,你肯定能到达某个地方. 1"GPU编程" History ————————— //由于笔记我是由印象里面转移过来的,排版上请见谅 想要实现自己的光线?想要渲染出自己的正方体!?那么没错了. 我们需要的东西不是C语言,而是英伟达所提出的 Cg 语言了. GPU 概念于20世纪70年代末80年代初被提出,采用单片集成电路作为图形芯片.[具有高并行结构,更多的ALU] 它能够很快的进行几张图片的合成和…
转载请标明出处http://www.cnblogs.com/zblade/ 最近研究了一下游戏中模型的骨骼动画的原理,做一个学习笔记,便于大家共同学习探讨. ps:最近改bug改的要死要活,博客写的吭哧吭哧的~ 首先列出学习参考的前人的文章,本文较多的参考了其中的表述: 1.骨骼动画详解 :http://blog.csdn.net/ccx1234/article/details/6641944,不过这篇文章的原文已经被csdn封了:D,可以看看对应的转载的文章也行 2.OpenGL10-骨骼动画…
  尼尔:机械纪元 上周介绍了Unity项目中的资源配置,今天和大家分享一个AssetBundle打包工具.相信从事Unity开发或多或少都了解过AssetBundle,但简单的接口以及众多的细碎问题也给工作带来较多的困扰.今天分享AssetBundle工具的实践与想法,相信这块内容对帮助理解AssetBundle有较大的帮助. Unity提供了两种资源加载方式,一种是Resources,另外种就是AssetBundle.所有的资源只要放在Resources目录下,在打包的时候会自动打进去,并可…
仅是简单的给一个ugui.text组件不断的赋值字符串,就会带来很高的CPU消耗,约0.5MS左右. 这个过程主要是消耗在字体的MESH顶点重建. 在游戏中变化的字体一般不多,聊天面板虽然变化,刷新率不高(MOBA游戏) 然后就是金钱变化的显示,网络延迟的显示,FPS的显示. 优化想法:对于字符串长度不发生变化的串,只需要更新每个字符的UI (重新获取该字符在字体图集中的UV) ,并不重建MESH. 这种做法的问题是:每个字符在图集中并不是等宽的,因此显示出来就会有宽有窄,非常难看. 其实重建M…
基本知识 右手坐标系 右手手掌弯曲,手指方向由正X轴指向正Y轴,如果这时Z轴正方向与大拇指方向保持一致,坐标系为右手坐标系,否则为左手坐标系. 向量叉乘的方向 向量(1,0,0)与向量(0,1,0)叉乘的结果可以由公式计算得到为(0,0,1),在数值上它是始终不变的.但放在坐标中进行解释,(0,0,1)都是代表Z轴正方向,但在左右手坐标系中他们与X,Y轴正方向的相对空间位置是不同的.在右手坐标中判断叉乘结果的方向使用右手定律,左手坐标系中使用左手. 视图变换是三维渲染中物体顶点坐标变换的一部分,…
近日,期刊平台 Distill 发布了谷歌研究人员的一篇文章,介绍一个适用于神经网络可视化和风格迁移的强大工具:可微图像参数化.这篇文章从多个方面介绍了该工具. 图像分类神经网络拥有卓越的图像生成能力.DeepDream [1].风格迁移 [2] 和特征可视化 [3] 等技术利用这种能力作为探索神经网络内部原理的强大工具,并基于神经网络把艺术创作推进了一小步. 所有这些技术基本上以相同的方式工作.计算机视觉领域使用的神经网络拥有图像的丰富内部表征.我们可以使用该表征描述我们希望图像具备的特性(如…
搞图形的人都知道3D MAX,而3D MAX SDK就是在该软件基础上的一套软件开发包.至于该不该将3D MAX SDK归纳为中间件,不要在意这细节了,反正我觉得SDK和中间件就差不多是一个东西.实际上我看网上有些文章将中间件与插件混为一谈.在我看来,中间件是用于做软件开发的,插件则是已经开发好的软件产品.对于插件我们经常听到的是浏览器插件,OCX插件.游戏外挂也属于插件的一种.插件嵌入到另外的执行程序中,或扩展其功能,或篡改其功能,或进行恶意破坏.一般情况下,插件并不好写,它需要其宿主程序提供…