纹理开启Mipmap导致压缩失败的问题

news2024/10/6 18:25:55

1)纹理开启Mipmap导致压缩失败的问题
​2)使用TextMeshPro能否避免使用Resources文件夹
3)用透视摄像机去分层管理UI的优势和好处
4)Houdini中切线空间向量怎么在Unity Shader还原出原向量


这是第325篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

Texture

Q:看到一些优化建议中说,ASTC压缩格式在开启Mipmap之后需要保证纹理尺寸为2的幂次方。

可是Mipmap的生成不受纹理尺寸的影响(非2的幂次方会有性能开销,但也可以生成Mipmap),ASTC压缩也是不受尺寸大小限制的。

但为什么非2的幂次方纹理开启Mipmap采用ASTC压缩格式会压缩失败?中间是有什么冲突吗?

针对以上问题,有经验的朋友欢迎转至社区交流分享


TextMeshPro

Q:使用TextMeshPro时,自带有Resources文件夹里面会放字体资源和TMP_setting,最后打测试包发现占据的内存还是比较大,而且我只用了一个字体。

有无办法不使用Resources?或者减少Resource内存大小呢?
参考:Unity TextMesh Pro 组件的 Resources 文件夹打包_无幻的博客-CSDN博客_unity textmesh pro 组件的 resources 文件夹打包

A:如果你对修改源码没有意见,建议修改源码。
把所有Resource.Load调用,代理成自定义方法(大概3处左右)。

感谢1 9 7 3-311135@UWA问答社区提供了回答


UI

Q:用透视摄像机去分层管理UI,是有什么优势和好处吗?能联想到的就是透视摄像机可以调节大小、位置、旋转、方便做3D效果,还是说还有一些别的优势?

针对以上问题,有经验的朋友欢迎转至社区交流分享


Rendering

Q:目前有一个需求, 在Houdini中,将法线从模型空间转换到切线空间后,保存到顶点颜色中,在Unity Shader通过读取顶点颜色将法线从切线空间转换到模型空间。

Houdini中:生成切线选择MikkT算法,和Unity保持一致:

vector T = normalize(v@tangentu);
vector B = normalize(v@tangentv) ;
vector N = normalize(@N);
matrix m = set(@T, @B, @N);
@Cd = m * @Cd;
@Cd = @Cd * {-0.5,0.5,0.5} + 0.5;  //Houdini是右手坐标系,加负号转左手坐标系

在Unity Shader中:

float3 bitangent = cross(normalize(v.normal) , normalize(v.tangent.xyz)) * v.tangent.w;
float3x3 TtoO = float3x3(v.tangent.x, bitangent.x, v.normal.x,
v.tangent.y, bitangent.y, v.normal.y,
v.tangent.z, bitangent.z, v.normal.z);
float3 normalOS = v.color.xyz;
normalOS = normalOS * 2 -1;
normalOS = mul(TtoO, normalOS) ;

但是这样转换出的法线是不对的。

然后做了如下测试:在Houdini中,直接将法线写入顶点颜色通道:

@Cd = @N;
@Cd = @Cd * 0.5 + 0.5;
@Cd = normalize(@Cd);
@N = @Cd;

Unity中,通过RenderDoc截帧:

向法线和顶点写入同样的数值,Unity中得到的向量顺序不一样,数值可能小数也有偏差。

哪位大佬有Unity源码的代码能不能看下Unity在导入FBX时做了哪些计算,怎么能构建出Houdini中的TBN逆矩阵来还原出houdini写入的切线空间向量?

针对以上问题,有经验的朋友欢迎转至社区交流分享

封面图来源于网络


今天的分享就到这里。当然,生有涯而知无涯。在漫漫的开发周期中,您看到的这些问题也许都只是冰山一角,我们早已在UWA问答网站上准备了更多的技术话题等你一起来探索和分享。欢迎热爱进步的你加入,也许你的方法恰能解别人的燃眉之急;而他山之“石”,也能攻你之“玉”。

官网:www.uwa4d.com
官方问答社区:answer.uwa4d.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多项新规重磅发布,微信视频号近期需要关注这几点

随着功能的完善和内容生态的丰富,视频号逐渐放慢产品更新频率,将重点放到商家准入标准、创作者扶持计划上来,本期我们将更侧重解读平台新规,帮助大家了解行业动向,把握最新趋势。01 视频号小店结算规则修订 取消48小时…

java使用tesseract-ocr进行文字识别

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、tesseract-ocr是什么?二、使用步骤1.下载exe安装包2.安装3.使用3.设置全局path二、java如何进行调用1.引入依赖2.demo使用3.环境变量配置前言 公…

【Java】Spring更简单的读取和存储

文章目录Spring更简单的读取和存储对象1. 存储Bean对象1.1 前置工作:配置扫描路径1.2 添加注解存储Bean对象1.2.1 Controller(控制器存储)1.2.2 Service(服务存储)1.2.3 Repository(仓库存储)1.2.4 Component(组件存储)1.2.5 Configuration1.3 为什么要这么多类注解…

筑基七层 —— 数据在内存中的存储?拿来吧你

目录 零:移步 一.修炼必备 二.问题思考 三.整型在内存中的存储 三.大端字节序和小端字节序 四.浮点数在内存中的存储 零:移步 CSDN由于我的排版不怎么好看,我的有道云笔记相当的美观,请移步至有道云笔记 一.修炼必备 1.入门…

web客户端-websocket

1、websocket简介 WebSocket是HTML5开始提供的一种在单个TCP连接上进行全双工通讯的协议。 WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手&#xff0c…

一文教你把ChatGPT变成MySQL数据库,颠覆你的认知

ChatGPT是当前最热门的产品了,很多人已经在用ChatGPT问答、写文章、编程、做题甚至是通过了各种考试。今天我用几个步骤来带着大家体验如何把ChatGPT变成MySQL数据库。 首先,我们需要创建一个数据库,让chatgpt把自己当做一个数据库,可以给它一个定义: 你来充当一个mysql数…

自定义复杂图片水印

我的社交能力还不如5岁儿童和狗。 文章目录前言一、主要工具类总结前言 之前写过一些简单的图片压缩和图片加水印:JAVA实现图片质量压缩和加水印 本次主要是针对图片加水印进行一个升级,图片水印自定义,自适应大小。 来,先看几…

JS语法让人困惑的点 “==与===”

在JS中有很多神奇的语法,非常让人困惑,我们就先一一道来,相信你在开发中或多或少都踩过这些坑,或者让人无法理解。 今天我们就来说下【】和【】 这题对于很多没有系统学过前端开发的技术人员来说,算个重点&#xff0c…

LLFlow沦为和代码解读

LLFlow沦为和代码解读 1.测试时代码的运行位置 sr:什么意思 sr 和 z 这里又将模型设置为了训练模式 所以下面这部分代码应该是测试时运行的所有代码 这个就是测试时使用的网络模型框架 下面应该就是self.netG的网络模型框架 但是这个z的网络模型框架代码还不…

前端基础之HTML扫盲

文章目录一. 第一个HTML程序1. 创建一个HTML文件并运行2. HTML的基本结构二. HTML常见标签1. 注释标签2. 标题标签3. 段落标签4. 换行标签5. 格式化标签6. 图片标签7. 超链接标签8. 表格标签9. 列表标签10. 表单标签10.1 input标签10.2 select标签10.3 textarea标签11. 无语义标…

Outlook账号被封?别慌,一步步教你怎么申诉

相信很多兄弟们使用Outlook不止是为了注册第三方平台,很多时候还会用来发送一些营销广告。但是广告邮件发多了很容易被官方检测到并查封。龙哥考虑到这个问题,就干脆给兄弟们也出一份Outlook的申诉教程,保证大家都从注册、养号、防关联到解封…

DataGear 使用数据集计算属性功能制作数据可视化图表

DataGear 在4.5.0版本新增了数据集计算属性特性,支持在定义数据集时对原始数据进行二次计算处理。 利用这一特性,可以更加方便灵活地制作数据可视化图表。 本文以某公司近两年季度销售额Excel为例,介绍如何基于数据集计算属性功能制作数据可…

Vue跨级通信(重点)

当不使用Vuex的前提下,子孙传递就得使用另外一种办法:provide 和 inject 总结:provide / inject 类似于消息的订阅和发布。- inject接收数据。- provide提供或发送数据,(1)provide(name&#xf…

Dubbo性能调优参数以及原理

Dubbo作为一个服务治理框架,功能相对来说比较完善,性能也挺不错。但很多同学在使用dubbo的时候,只是简单的参考官方说明进行配置和应用,并没有过多的去思考一些关键参数的意义,最终做出来的效果总是差强人意,接下来我们…

扬帆优配|反弹涨超70%,昨收三连板,稀土行业或迎大事件

本年第一批稀土挖掘锻炼目标行将发放。 2月22日晚,东易日盛公告称,公司收到董事、副总经理兼财务总监李双侠出具的《关于未严格执行股份减持方案的致歉函》,其此次减持方案已施行结束,但在施行减持方案时,因操作失误&a…

从没想过开源 API 工具的 Mock 功能,这么好用

很多时候,接口尚未开发完成,在系统交互双方定义好接口之后,我们可以提前进行开发和测试,并不依赖上游系统的开发实现。 通过使用Mock模拟数据接口,我们即可在只开发了UI的情况下,无须服务端的开发就可以进行…

证明CPU指令是乱序执行的

承接上文CPU缓存一致性原理双击QQ.exe从磁盘加载到内存里面,内存里面就会有了一个进程,进程产生的时候会产生一个主线程,就是main方法所在的线程,cpu会找到main开始的地方,把它的指令读取过来放到程序计数器&#xff0…

从功能测试进阶自动化测试,熬夜7天整理出这一份3000字超全学习指南

一、为什么要学习自动化测试? 如果在前两年,可能10个测试员有6个都是做的功能测试,但随着测试技术的发展以及测试工作的深入,传统的手工测试已经无法满足多模块的测试需求,所以为了提高测试效率和测试质量&#xff0c…

关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)

关于 mac 本地配置域名能 ping 通,但是浏览器不能访问的问题(而其他电脑操作可访问)1. 配置域名的方式1.1 sudo vim /etc/hosts1.2 浏览器插件 LiveHosts2. 问题描述3. 解决问题方法3.1 尝试方法1—确保代理都关闭3.2 尝试方法2—确保域名能p…

一文学会 Spring 整合 MyBatis

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…