GPU PRO 5 - 2.6 Wire Antialiasing 笔记

本笔记仅为个人的理解,如果有误欢迎指出。

Wire Antialiasing

电线的抗锯齿

本文讲述了一种应用于线缆的抗锯齿技术,实际上适用于任何能够当作圆柱形的物体。比如电线、管道、电线杆、栏杆、路灯杆、天线塔、栏杆、草丛。其实这里的思路类似于同书2.5章中头发的抗锯齿技术,也是通过计算覆盖率控制透明度的思路。

第一步:调整电线在渲染的时的缩放程度。

首先文章中控制电线在渲染的时候像素的大小不会小于一个像素。文章定义了一个缩放因子去控制缩放:

控制像素大小的代码如下:

但这会带来一个问题就是远处的电线会变粗,因为一个像素虽然小,但比起远处电线原来的大小还是会粗很多。

解决这个问题的办法是将原本的电线粗细与拓展后的粗细计算出一个覆盖率,作为渲染像素的透明度值。然后得到以下效果

处理着色问题:

渲染的物体过小会带来一个问题就是相关的向量误差会越来越大,比如法线可能会因为像素变小而使得方向跳向了别的地方。因此与法线相关的光照模型在这些渲染上就不适用了,因此文章提出用法线变化带来的影响比较小的光照模型,比如半兰伯特光照模型。

但这还不够,文章还提出了可以根据距离调整光照模型,比如直接过渡到简单着色的形式。或是随着距离增加调整压平法线,以适应半兰伯特光照模型。

参考资料:

GPU Pro5 光照篇

相关推荐
M78佐菲1 小时前
Linux学习笔记:目录IO与帧缓冲
linux·笔记·学习·算法
hongmai6668881 小时前
把玩ESP8684-WROOM-04C-H4X:一颗耐高温的RISC-V小钢炮
笔记·单片机·嵌入式硬件·物联网·risc-v
天天爱吃肉82181 小时前
XCP协议 Part 1 概述 — 完整学习笔记(商用车主机厂工程师版)
大数据·笔记·python·学习·汽车
蒲锘2 小时前
DevOps 项目阶段笔记二:Docker Engine + cri-dockerd
笔记·docker·devops
优化Henry2 小时前
关于“星链”互联网系统的几点认识
运维·服务器·网络·笔记·学习·信息与通信
九硕智慧建筑一体化厂家4 小时前
智慧建筑高效管控!楼宇自控系统赋能新能源园区智能运维
运维·人工智能·笔记·智慧城市
Wang's Blog12 小时前
PostgreSQL笔记60: 权限与角色管理——从层级体系到最佳实践
数据库·笔记·postgresql
IZero0715 小时前
Elasticsearch 学习笔记筑基-文档操作篇
笔记·学习·elasticsearch
公爵爱学习15 小时前
安装Ubuntu20.04遇到的问题 简要简述笔记
笔记
Wang's Blog17 小时前
PostgreSQL笔记28: PostgreSQL ACID 特性与实现机制深度解析
大数据·笔记·postgresql