vertex compression所遇到的问题
对于数据压缩,其实就是把浮点的32位精度,改用16位定点数来表达。
例如0.0 = 0,1.0 = 32767,-1.0 = -32767
这是一种有损压缩,会丢失一些精度,一般情况下是可以接受的。
当浮点数是-1至+1的范围,即-32767至+32767。
这时问题出现了,如果浮点的范围是几万,那么一些浮点如果是小数位后几位的数值,压缩后会变成0。
例如:0.0123,在上述情况下,最终存在unsigned short中其实是0或者1,解压后也是0。
发现问题的起因是手上有一个奇葩的模型数据,它的某一组UV竟然有3千万的大小,而其他的UV则是正常范围的几十或者是0-1。
压缩后,出现大面积的纹理走样。
通过思考后,发现原因是美术手上有一张大小可能是几十的贴图,他想贴到一个几十万甚至几百万单位大小的模型上,于是就简单粗暴得将UV值设置为很大。
但是其实想一想,即使再大一点的贴图,例如1000x1000大小的图,这时使用3千万的UV数值,这张图最后在屏幕上显示时只会变成纯色。
于是解决办法是在导出时,如果发现有这种奇葩数值,首先是红色LOG警告,然后将UV数值钳制在100以内,这样就不会因为变态数值而影响到正常的数值了。
vertex compression所遇到的问题的更多相关文章
- 实施vertex compression所遇到的各种问题和解决办法
关于顶点压缩,好处是可以减少带宽,一定程度提高加载速度,可以提高约5-10%的fps,特别是mobile上,简单描述就是: 压缩之前(32字节) position float3 12normal fl ...
- Unity的Mesh压缩:为什么我的内存没有变化?
0x00 前言 最近和朋友聊天,谈到了Mesh的内存优化问题,他发现开启Model Importer面板上的Mesh Compression选项之后,内存并没有什么变化.事实上,期望开启Mesh Co ...
- Unity 5 Game Optimization (Chris Dickinson 著)
1. Detecting Performance Issues 2. Scripting Strategies 3. The Benefits of Batching 4. Kickstart You ...
- Unity引擎的Player Settings介绍
我用的是unity5.4.3版本的 一.窗口打开: 从菜单栏查看播放器设置,选择 Edit->Project Settings->Player 二.全局设置 第一部分: Company N ...
- Graphics-Processing Architecture Based on Approximate Rendering
BACKGROUND The present invention generally relates to the processing of graphics data, and particula ...
- [IR] Graph Compression
Ref: [IR] Compression Ref: [IR] Link Analysis Planar Graph From: http://www.csie.ntnu.edu.tw/~u91029 ...
- CSharpGL(38)带初始数据创建Vertex Buffer Object的情形汇总
CSharpGL(38)带初始数据创建Vertex Buffer Object的情形汇总 开始 总的来说,OpenGL应用开发者会遇到为如下三种数据创建Vertex Buffer Object的情形: ...
- OpenGL中glVertex、显示列表(glCallList)、顶点数组(Vertex array)、VBO及VAO区别
OpenGL中glVertex.显示列表(glCallList).顶点数组(Vertex array).VBO及VAO区别 1.glVertex 最原始的设置顶点方法,在glBegin和glEnd之间 ...
- 集合覆盖 顶点覆盖: set cover和vertex cover
这里将讲解一下npc问题中set cover和vertex cover分别是什么. set cover: 问题定义: 实例:现在有一个集合A,其中包含了m个元素(注意,集合是无序的,并且包含的元素也是 ...
随机推荐
- Python模块——bisect
bisect是python内置的模块,主要用于对有序列进行操作.具体用法如下: 模块导入:import bisect 内容查看:dir(bisect) 这个模块包含了: 五个变量:builtins, ...
- Odoo10尝鲜: 退货
Odoo sale / purchase 在 v9 改进之后, 开立发票的入口 不再像之前的版本,有多个来源,例如 订单 交货单 记工单 分析分录 现在只有一个入口,只需要在 订单上开票,这样 ...
- [python] 线程
来源:田飞雨 链接:http://www.jianshu.com/p/12cd213a93bf 虽然python中由于GIL的机制致使多线程不能利用机器多核的特性,但是多线程对于我们理解并发模型以及底 ...
- 20145225《Java程序设计》 第9周学习总结
20145225<Java程序设计> 第9周学习总结 教材学习内容总结 第十六章 整合数据库 16.1JDBC JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂 ...
- java中的匿名内部类小结
匿名内部类也就是没有名字的内部类.正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写. 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口. 实例1:不使用匿名内部类来实现 ...
- FastDFS基本结构(转)
0.简介 FastDFS是基于互联网应用的开源分布式文件系统,主要用于大中型网站存储资源文件,如图片.文档.音频.视频等.FastDFS采用类似GFS的架构,用纯C语言实现,支持Linux.FreeB ...
- Magcodes.WeiChat——通过CsvFileResult以及DataAnnotations实现导出CSV文件
我们先来看看效果图: 从上图中可以看出,导出的文件中列名与表格名称保持一致,并且忽略了某些字段. 相关代码实现 我们来看相关代码: 页面代码: @using (Html.BeginForm(" ...
- fiddler 无法捕获apache httpclient报文的问题及解决
问题如题,解决办法为在构建httpclient对象的时候设置代理,因为fiddler内置了一个代理,只有流量(traffic)经过这个代理,才能够被捕捉到. HttpHost proxy = ); C ...
- JS编程常识
一.UI层的松耦合 松耦合就是要求各层遵循“最少知识原则”,或者说是各层各司其职,不要越权: HTML:结构层 CSS:表现层 JS:行为层 对于各层的职能,有一句比较贴切的解释:HTML是名词(n) ...
- 实际遭遇并解决:类型“ASP.global_asax”同时存在的问题
将一个ASP.NET项目由预编译方式改为动态编译方式时,删除了bin文件夹中所有扩展名为.compiled文件以及文件名以App_Web_开头的文件. 访问却出现下面的错误: System.Web.H ...