专栏首页音视频技术学习笔记格拉姆-施密特正交化说明

格拉姆-施密特正交化说明

法线贴图一章节涉及到TNB-切线空间。切线空间在坐标变换过程中,可能偏离,TNB需要重新正交化。最重要的一步是T N正交化。 涉及到的代码片段如下: 重点理解:T = normalize(T - dot(T, N) * N);

vec3 T = normalize(vec3(model * vec4(tangent, 0.0)));
vec3 N = normalize(vec3(model * vec4(normal, 0.0)));
// re-orthogonalize T with respect to N
T = normalize(T - dot(T, N) * N);
// then retrieve perpendicular vector B with the cross product of T and N
vec3 B = cross(T, N);

mat3 TBN = mat3(T, B, N)

TN重新正交

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 线性代数学习笔记

    从19年1月14日,持续1个月时间,学完了MIT线性代数。MIT线性代数没有死扣计算技巧,主要focus在原理的理解,和工程应用相结合。

    用户1068165
  • 19.opengl高级-高级数据

    除了使用一次函数调用填充整个缓冲之外,也可以使用glBufferSubData,填充缓冲的特定区域,使用glBufferSubData之前必须先调用glBuff...

    用户1068165
  • 24.opengl高级光照-Blinn-Phong

    冯氏光照在逼近真实光照和性能之间做了很好的平衡,解决了绝大部分场景的需求,也存在一些细节问题。这一章节讲Blinn-Phong通过对冯氏光照做的一些优化。

    用户1068165
  • 工信部全面启动人工智能揭榜,17大领域遴选中国顶级AI单位!

    11月14日,工信部发布关于印发《新一代人工智能产业创新重点任务揭榜工作方案》的通知,启动了人工智能产业创新重点任务揭榜工作,以下称“人工智能揭榜工作”。

    新智元
  • 019.Kubernetes二进制部署插件dashboard

    提示:将yaml文件中的image字段修改为mirrorgooglecontainers/kubernetes-dashboard-amd64:v1.10.1。

    木二
  • Java 14 祭出增强版 switch,真香!!

    关注Java技术栈公众号的朋友应该都知道,switch 在 JDK 12 中进行增强了,并且在 JDK 12/13 中一直是预览特性,刚出来的时候,栈长也第一时...

    Java技术栈
  • 从相册中选择或拍照设置并上传头像图片设置头像

    VV木公子
  • ​TKE容器服务搭建kubernetes-dashboard教程

    目前TKE控制台暂时不支持Job, Pod, CronJob等对象的展示。有通过web界面查看这些类型对象的需求的话,可以自行安装k8s dashboard U...

    马凌鑫
  • 开发指南 | 内嵌花生壳PHTunnel实现内网穿透

    本文将详解如何把花生壳PHTunnel封装成一个OpenWrt标准组件,并编译到自己的OpenWrt固件中,实现内网穿透功能。

    贝锐科技
  • Linux学习笔记(九)软件包管理

    包管理器是方便软件安装、卸载,解决软件依赖关系的重要工具,在不同发行版本的Linux系统中,有着不同的软件包管理器:

    小雨编程

扫码关注云+社区

领取腾讯云代金券