LionheadAtGDC2011

YCgCo颜色空间 YCgCo颜色空间可参考YCbCr颜色空间,通过亮度分量Y,色度绿色分量Cg,色度橙色分量Cr。 YCgCo与RGB相互转换: YCgCo颜色空间优势在于: 1、相比其它颜色空间,可以无损的与RGB相互转换,计算复杂度低。 2、相比YCbCr,可以有效的避免与RGB相互转换的舍入误差(YCbCr与RGB相互转换使用浮点运算)。 H.264/ACV视 阅读详情

http://www.gdcvault.com/play/1014350/Mega-Meshes-Modeling-Rendering-and

全名太长了:MegaMeshes modeling, rendering and lighting a world made of 100 billion polygons

简直是一个微博。

作者是lionhead的一个team的lead programmer, lionhead studio开发了fable和black&white系列的强力工作室。

介绍他们给《milo&kate》开发的游戏(milo真大牌,有人专门给开发游戏)

 

整篇文章看下来感觉挺不爽的,压缩到1/3还差不多,太长了而且有意思的信息密度非常小。

很多大家都熟知的东西还特大篇幅介绍。

 


 

MegaMeshes

paper从美术风格开始讲起,这个我很喜欢,程序员就是应该有更好的一个视野。

m&k是走一个小可爱的闷骚路线,polygon的形状很简单,却希望有很大的规模和高质量的lighting。

给人感觉很童话。

 

为了很好的达到这一点,这帮哥们来了个有意思的想法,让artist像雕塑一样工作,而不是create geometry, create 2d texture, 然后map上去。

而是直接在geometry上精雕细琢然后着色,着色就在vertex,需要更细致就把polygon细分,不用texture。

做完这一点之后,工具自动从高精模型上抽取出diffuse map, normal map等, 就和normal mapping产生的方法比较类似。

这个会进一步解放artist的创作力和生产力。

对于整个world,他们希望整个world放在一起来雕琢,当然实际程序中还是要分cluster,但是给artist感觉是浑然一体的。

 

但是这样一来,一个level就会有10billion级别的polygon,所以就需要一个solution来搞定这些,也就是mega mesh tool。

 

从mega mesh这个名字也能看出来会使用类似mega texture的方式来存储,在使用的时候这么大数量的polygon是没法存的,

具体存储和使用的时候会有hierarchy的概念,根据需求load不同的level。

高精度的部分是按照低精度模型顶点加delta的方式来存的,低精度和高精度模型之间有关系的,也就是说修改低精度模型会直接导致高精度模型的update(nice!)。

 

 


 

virtual texture

 

mesh都mega了,texture不mega有点说不过去了。

 


 

贴图压缩

 

mega tex会导致数据量很大,十几g是小case,需要好好压一压。

 

常用的一切都不给力,

dxt的压缩率不行

jpeg的quality不行(blocky)

最后用的是microsoft research 的Rico Malvar的ptc算法。

http://research.microsoft.com/apps/pubs/?id=101991

结果惊人:

  • normal compression ptc:40:1, dxn:3:1
  • albedo compression ptc:60:1, dxt: 6:1

但是在其他情况就不知道了,因为这些算法的压缩方式都是很挑源数据,有的就很好,有的一般,正好被lionhead赶上了,结果非常强力。

 

albedo texture

这里利用人眼的一个特点,就是对brightness敏感,对颜色不够敏感,所以使用YCoCg space是一个(luminance,orange,green)这样的组合。然后对orang和green进行ptc encoding压缩。

解压缩的时候就是生成dxt格式的贴图。

结果给出来是:769k:37k==大约20倍的压缩率。

 


 

frame analyze

 

分析场景需要那些贴图,lionhead使用把场景render一下,render不带贴图,而且输出的是texture的uv,cpu端读取这个render target就知道那些tile的texture是需要的了。

虽然看起来问题多多,但是用起来还很不错的。

 

流程上是3thread的协同工作,render thread在产生drawcall, virtual tex thread负责texture loading的工作,gpu就render。

这里就是gpu 的pipeline要尽可能的先做其他工作把需求virtual texture loading的部分mask掉。

整个协同上使用fence这些element来同步,fence被gpu consume的时候会向cpu端发event或者callback一些function,导致向virtual tex thread插入一些command, command的执行就是load in texture。

这些load进来的texture都是用来下一帧render的,所以相对还是有空间来load和lock的。

 

texture cache上也传承了传统cache的一些机制,space/temp locality。

 


lighting

 

算是realtime gi,但是现在这个词太唬人了,其实只是对常用的indirect lighting做一些调整。

使用spherical harmonics系数存储lighting信息,有lighting propagation过程。

用lookup table来存储sh系数,进而压缩算是一个亮点。

算法效率不高,只能适合小场景,干脆老老实实follow crytek用light propagation volume算了啊。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Unity去马赛克原理:YCoCg色彩空间采样重建技术 在实时渲染中,纹理采样失真常被误认为画质差或配置错误,实则是sRGB与Linear空间转换、Mipmap生成及双线性插值等环节叠加导致的色度混叠与伽马域插值误差。YCoCg色彩空间因其整数友好、无损转换、人眼亮度优先建模等特性,成为Unity URP/HDRP管线中高保真采样重建的理想选择。该方案通过分离亮度(Y)与色度(Co/Cg)通道进行自适应滤波,在保障边缘锐度的同时抑制彩噪与伪影,广泛应用于UI文字抗锯齿、法线贴图保真、HDR立方体贴图极点修复等场景,是中大型项目实现确定性画质控制的关键技术路径。 阅读详情

相关推荐

[引擎搭建记录] 时间性抗锯齿(TAA)

我的知乎专栏:https://zhuanlan.zhihu.com/c_1099268510815010816 最近我做好了简单的场景编辑和序列化,打算回来继续折腾渲染部分了,首先想要实现的就是TAA(temporal anti-aliasing),为什么阴影和AO之类的啥都没有却要先写TAA呢,因为TAA对整个管线的结构影响非常大,而且后面会有许多地方用得着temporal的方法来增加采样率,比...

膜力鸭苏蛙可的博客 1万+

实时的YcoCg-DXT压缩

实时YCoCg-DXT压缩 JMP van Waveren id Software,Inc. NVIDIA公司IgnacioCastaño 2007年9月14日 ©2007,id Software,Inc. 抽象 引入了高性能纹理压缩技术,利用了当今显卡上提供的DXT5格式。压缩技术在DX

tailiangliang的专栏 5491

Cinder-DDS:用于DXT1,DXT5和YCoCg-DXT5图像压缩和DDS文件输出的CinderBlock

煤渣DDS Cinder-DDS是一个用于压缩有损DXT1,DXT5和YCoCg-DXT5格式的图像并将它们包装在DDS文件容器中。 (S3TC或有时称为DirectX纹理压缩DXTC)是许多GPU通过 OpenGL扩展支持的固定速率有损图像压缩格式-这允许将压缩的图像直接传输到GPU,然后进行解压缩在硬件上,而不是在CPU上进行更昂贵的解压缩,然后再进行从CPU到GPU的更高带宽传输。 YCoCg-DXT5压缩格式DXT5压缩中的图像数据,通常产生比RGB更高的质量-JMP van Waveren和IgnacioCastaño在论文“提出了该格式。 值得注意的是,压缩后的伪像仍保留在YCoCg色彩空间中,因此可能需要使用片段着色器将其恢复为RGB。 (DDS)是图像文件容器,通常用于DXT压缩图像。 它是由Microsoft创建的,在Windows的创建和加载过程中均受到很好的

虚拟贴图理论之贴图压缩

虚拟贴图无论对内存带宽还是显存带宽,都造成了巨大的压力,因此我们需要使用压缩格式的文件。从工程的角度来说我们需要了解各种压缩算法的压缩比,解压速度以及压缩速度,从而选择最佳方案。为了能够更好的使用压缩格式,我这里简单的了解了三种压缩格式,分别是代表贴图压缩的jpg格式,代表纹理压缩的dxt格式,以及代表通用压缩格式的zip。 ...

liran2019的博客 960

从SD更新字库到FLASH,再用LCD显示

用Flash当字库存储载体。思路是先将要用到的字库文件存在SD卡,然后存储到Flash,LCD显示时候从Flash中读取 还挺顺利的,移植的原子的程序,自己稍加修改,主要是我的液晶屏函数,Flash读写函数,还有存储文件的flash地址不一样。一晚上搞定,大小字体都OK。挺高兴哈哈。这几天忙工作事情有点耽搁了学习进展嘿嘿 在text.c的showstr函数中char的字体颜色随意设置的,可以显...

weixin_30505751的博客 914

RK3588开发板DDR频率上不去?手把手教你用ddrbin_tool降频调优(附完整配置流程)

本文详细介绍了RK3588开发板DDR频率调优的完整解决方案,重点使用ddrbin_tool工具进行降频配置。从硬件原理分析到实战操作,包括参数导出、频率调整、二进制生成及烧录验证,帮助开发者解决DDR高频不稳定问题,提升系统可靠性。适用于嵌入式开发、工业控制等场景。

weixin_42713608的博客 544

反走样技术相关文章

https://zhuanlan.zhihu.com/p/28800047 https://zhuanlan.zhihu.com/p/57503957 https://zhuanlan.zhihu.com/p/33444125 https://zhuanlan.zhihu.com/p/33444429 走样的原因及其分类 说到走样,首先要说的就是采样。这也算是很多图形学专著中提到反走样相...

yinfourever的专栏 886

博科的SAN交换机基本操作

2、添加用户testuser赋予user权限可以访问1-128VF默认VF为128账号描述"Test user"密码为password123。1、创建zone别名(100是指当前设备Domain ID,1和2是指对应的index号)2,删除新接入设备的ZONE或保持ZONE配置一致。3、将zone添加到当前生效的CFG中。2、将zone添加到当前生效的CFG中。3、将zone添加到当前生效的CFG中。3,将添加的级联端口持续关闭。4、将当前zone生效。4、将当前zone生效。1、查看当前所有用户。

chenjunokok的博客 1838

RGB与YUV转换

RGB与YUV转换

FangZ142的博客 1474

Kylin-Desktop-V10-SP1海光版虚拟机安装全流程(含桥接网络配置)

本文详细介绍了在VMware虚拟机中安装Kylin-Desktop-V10-SP1海光版操作系统的完整流程,重点解决了基于海光(Hygon C86)平台的网络配置难题。内容涵盖从镜像准备、虚拟机创建、系统安装到桥接网络配置的三种实战方法,并提供了安装后的优化与必备软件配置指南,帮助用户高效搭建国产化测试与开发环境。

weixin_29323493的博客 355

LAMMPS in文件详解:从零开始手把手教你配置金属分子动力学模拟

本文详细解析了LAMMPS in文件的配置方法,手把手教你完成金属分子动力学模拟的全流程。从软件环境准备、势函数选择,到使用Materials Studio构建模型、编写in文件进行能量最小化与系统弛豫,再到实施单轴拉伸生产模拟并提取应力应变数据,最后通过Python和OVITO进行结果分析与可视化,提供了完整的实战指南和常见问题排查技巧。

weixin_28475533的博客 527

The Compact YCoCg Frame Buffer

RealTimeRendering能推荐必为精品! http://www.realtimerendering.com/blog/second-jcgt-paper-is-up-for-download/         YCoCg在图像压缩里广泛使用,在游戏里第一次听到这个词是在寒霜引擎的Five Rendering Idea里用来做后处理优化,当时是第一次听到这个方法觉得很牛逼:)第二次

Knight_snow的专栏 1738

PrimeTime low power-多电压设计流程(1)

PrimeTime支持使用IEEE 1801统一电源格式(UPF)标准来指定设计的多电压特性。PrimeTime能够在多电压供电和使用set_voltage命令在特定电源网上设置电压值的情况下,正确分析设计的时序。要了解如何使用多电压设计流程,请参考以下内容:- 多电压分析需求- 指定电源连接性- UPF命令- GoldenUPF流程- 多重电源电压分析。

QRBQ 528

YCoCg色彩空间与邻域裁剪:Temporal Reprojection画质提升的关键技术

在实时渲染领域,**Temporal Reprojection Anti-Aliasing(时域重投影抗锯齿)** 是一种革命性的抗锯齿技术,它通过跨帧累积采样信息来消除锯齿和噪点。今天,我们将深入探讨这一技术中的两个核心优化:YCoCg色彩空间转换和邻域裁剪算法,这些关键技术让Temporal Reprojection在Playdead的《INSIDE》等顶级游戏中实现了惊人的画质提升。🎮

gitblog_00494的博客 350

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

Prompt进阶2:LangGPT(构建高性能Prompt策略和技巧)--最佳实践指南

丨汀、的博客 2651

MIKE水动力笔记4_制作网格

建立水动力模型前的重要一步就是制作网格,本文所讲内容就是如何在MIKE中制作网格。

晏长街的博客 2万+

In-Game HD Video Capture using Real-Time YUYV-DXT Compression

玩游戏的时候想截取视频一般都是通过第三方工具来完成的,Fraps很多时候会被用来截取实时的游戏视频,但是用了Fraps之后会发现帧率明显下降了很多,很影响游戏的体验。如果有一种可以实时截取游戏视频而不降低帧率的方法该多好啊,无意中发现Outerra的Blog有一篇Blog专门介绍了他们如何达到这个目的的,他们当然这个方法是需要内嵌到游戏本身的,不是像Fraps那么自由可以随便在那个游戏上,理论上应

Knight_snow的专栏 3万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Real-Time YCoCg-DXT Compression

Real-Time YCoCg-DXT Compression J.M.P. van Waveren id Software, Inc.   Ignacio Castaño NVIDIA Corp. September 14th 2007 © 2007, id Software, Inc. Abstract

IC_SOC_ARM 2342

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

实时 DXT 压缩

实时DXt压缩算法 JMP van Waveren id Software,Inc. NVIDIA公司 2008年2月7日 ©2008,id Software,Inc. 翻译此文,我觉得对于理解Doom3和rage的dxt压缩算法,有很大的帮助,尽管翻译的地方有所失误, 原文下载地址,(注,原文写的更

tailiangliang的专栏 2854

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

实时法线贴图dxt压缩算法

JMP van Waveren id Software,Inc. NVIDIA公司IgnacioCastaño 2008年2月7日 ©2008,id Software,Inc. 抽象 原文下载地址 点击打开链接 注原文有代码,我觉得大部分读者不会看麻烦dxt压缩的代码,有需要可以看原文 使用今天的图形硬

tailiangliang的专栏 6630

[运营期间开发]卡顿处理--GPUView

开发期间的卡顿处理的方法比较多,可以打log等方法。 GPUView 在运营期间就是GPUView就是逆天的给力存在。 GPUView早先是一个微软实习生开发的东东(好逆天的实习生),以单独的方式来发布,后来集成到windows sdk中来,本blog上面这里有一些记录。 而且在后续GPUView依旧保持着发展,功能也越发好用了,连intel的gpa也在底层使用这个机制。 GPUView

安柏霖的专栏 7835

显卡参数指标

http://www.kludx.com/browse_video_cards_detailed.php怕网站消失,copy之:ATI  DirectX OpenGLName DirectXPixel ShaderVertex ShaderPrimitive CountMax. Vertex IndexActive LightsTexture WidthMax Point SizeVS ConstVS Inst. ExecutedVS 3.0 Inst. SlotsPS Inst. ExecutedPS 3

安柏霖的专栏 5604

link time code generation

<br />http://msdn.microsoft.com/en-us/magazine/cc301698.aspx<br />在link时刻做的代码优化。<br />平时接触的编译器优化基本是compile time优化,比如inline这样的工作。<br />其限制就是可以做的东西就是在一个编译单元里,一旦调用的一个函数在另外一个编译单元,就只有跳转着一个选择,至于跳转的细节就是在link time来决定了。<br /> <br />link time 优化就是在拿到所有编译单元结果了之后,在全局做

安柏霖的专栏 5289

Designing Fast Cross-Platform SIMD Vector Libraries

是对这篇文章的笔记:http://www.gamasutra.com/view/feature/4248/designing_fast_crossplatform_simd_.php?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+GamasutraFeatureArticles+(Gamasutra+Feature+Artic

安柏霖的专栏 3253
上一篇: TheTechBehindDx11UnrealEngine"Samaritan"Demo
下一篇: Lighting you up in Battlefield 3
安柏霖
安柏霖 领域专家: 学术研究与理论基础技术领域 领域专家: 学术研究与理论基础技术领域
博客等级 码龄20年 1788粉丝 891原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值