热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

[acm15]thesggxmicroflakedistribution

introacmtransactionongraphics15的一个文章;https:dl.acm.orgdoi10.11452766988整体偏学术,

在这里插入图片描述


intro

acm transaction on graphics 15的一个文章;
https://dl.acm.org/doi/10.1145/2766988
整体偏学术,主要是对马岛的siggraph20的course中有引用,顺着看过来,还挺有意思;
论文本身有点晦涩,看起来有点枯燥,看这个视频比较好:
https://www.bilibili.com/video/BV1MK411P71x?from=search&seid=10817193380449311591
笔者还加了些注释说明。


overview

sggx microflake distribution是处理volume 渲染的一个方法;
在这里插入图片描述
像fur,fabric,植被这种,物理比较正确的方式还是要按照volume去建模;
像之前[sig16]《神秘海域4》中的volumetric-based materials
里的技术还是偏hack的,没有做正确的建模和计算。
在这里插入图片描述
在sggx之前,是有zhao shuang老师的很多在volume渲染方面的很多工作.
对于毛发这种,是属于各向异性的体数据,一般使用的建模是microflake;毛发这种完整说来是:spatially-varing properties of anisotropic microflake participating media;
microflake就是如图理解就行,就是volume中一堆小片,用这个来建模各种体数据;

在这里插入图片描述
但是之前的做法是超高精度的渲染方式,细节很高,但是消耗太大;
而且数学模型也不容易去downsample。
sggx是使用了一个更加简单,以及容易lod的表达,极大地提升了这个渲染的效率,因此也在一些游戏中开始被使用;


关键点

整篇文章关键点两个:


  • roughness物理属性的直觉表达,是microflake在各个方向上的投影面积(project area)
  • 然后使用ellipsoid(椭球体)来表达建模,把解析公式的方式,转变成geometry的方式,进而把整个问题大幅度简化
    在这里插入图片描述
    这里作者首先从light在volume中传播的方式来进行反推,最后得出roughness就是microflake在各个方向上的project area;
    然后进行downsample的时候也要围绕这个来做;
    一旦有了project area这个关键点,那么建模就相对直接
    在这里插入图片描述
    在这里插入图片描述

就是使用ellipsoid来建模,可以做到和原来的microflake等效;
在这里插入图片描述
这样normal distribution什么的也都有了,sggx的ellipsoid模型也可以把ggx distribution统一进来;
在这里插入图片描述
然后ellisoid表达就是一个矩阵就有了,各种简洁;
进而各种dowsample等等的操作就简单了;


结果

sggx normal distribution能够在效果相近的情况下,大幅度提升渲染效率,可以说是挺犀利了;
在这里插入图片描述

在这里插入图片描述


推荐阅读
  • node.jsurlsearchparamsAPI哎哎哎 ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • 移动传感器扫描覆盖摘要:关于传感器网络中的地址覆盖问题,已经做过很多尝试。他们通常归为两类,全覆盖和栅栏覆盖,统称为静态覆盖 ... [详细]
  • ffmpeg【百度百科】
    FFmpeg是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用LGPL或GPL许可证(依据你选择的组件)。它提供了录 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
  • 最新技术_Tungsten Fabric架构和最新技术进展丨TF成立大会演讲实录
    本文整理自瞻博网络杰出工程师SukhdevKapur在“TF中文社区成立暨第一次全员大会”上的演讲,增加了对于TF功能的描述,pdf点击下载。https://tung ... [详细]
  • 我正在使用fabricjs,并且具有图像的JSON列表.每个元素代表一个图像,每个图像的信息如左,上等.在我的JavaScript代码中,我有以下内容for(varj0;j ... [详细]
author-avatar
swa乄ycat曼颜
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有