GPU PRO 5 - 5.1 Quaternions Revisited 笔记
本笔记仅为个人的理解如果有误欢迎指出。Quaternions Revisited重新审视四元数感觉更符合的翻译应该是复习四元数本文主要讲述了四元数在游戏开发中的几个应用场景并进行了性能和资源占用方面的对比1.法线贴图2.通用变换与实例化渲染3.蒙皮动画4.模型变化/混合形变1.法线贴图传统的法线贴图中要求在模型表面的每一个位置建立一个TBN坐标系通常这都是在模型顶点处计算传到片元渲染的时候之前会进行插值计算。文章用四元数要解决的问题就在这里发生。TBN坐标系的坐标轴计算插值的时候至少需要六个插值通道TBN坐标占用3个另外3个可能是其他必要数据比如uv顶点坐标阴影坐标。而使用四元数的话就能将TBN坐标占用的三个插值通道降低到一个。用四元数代替TBN所要面对的一个问题是四元数的插值问题。四元数插值存在方向的问题如果两个四元数点积为正则会沿着最短路径进行否则会沿着最长路径进行对于三角形内部的顶点法线通常希望用最短路径去插值。例如图中的A点如果不做任何处理的话他的插值路径就是ABCDA解决这个问题的方案是调整UV接缝处的四元数符号从而完成四元数对齐相关代码代码上可以看到他遍历整个网格把所有共享边的顶点四元数统一符号。2.通用变换与实例化渲染用四元数可以用更少的数值完成变换矩阵的作用变换矩阵需要位置、旋转、缩放 每个四个共12个数值来表示但是用四元数仅仅需要8个数值即可。两个3x3旋转矩阵相乘需要45次标量计算而两个四元数相乘只需要28次标量计算。但四元数计算还是会存在一些问题1四元数连续相乘导致的归一化问题一个单位四元数q如果不断与自身相乘会逐渐偏离单位长度变得越来越非单位化。这个问题的解决办法是在每次四元数乘法之后重新进行归一化。2四元数对非均匀缩放的限制如果一个特效需要在空间中两个任意位置之间进行拉伸就需要对模型进行非均匀缩放。限制的主要来源于SQT将缩放与旋转完全解耦限制一只能轴对齐的非均匀缩放限制二缩放始终发生在对象空间3.蒙皮动画利用四元数进行蒙皮的方法是应用骨骼旋转之前对不同骨骼的四元数进行插值。实践上当一个顶点同时受到多个骨骼影响时这些骨骼相对于绑定姿态具有较大的旋转差异时该方法会产生错误结果造成这个问题的原因还是因为四元数不能进行正确的线性混合。主要是因为四元数的计算不满足交换律例如图中的四元数不同的加算顺序得到的四元数就不同。文章中对此的处理是不直接混合四元数而是先用骨骼四元数分别计算顶点变换再对变换后的顶点位置按权重进行混合。4.模型变化/混合形变Skyforge这款MMORPG存在一个允许玩家连续调整角色身体比例的功能。这个功能通过对两个形态的模型之间的每个顶点进行插值来实现。既然是通过顶点插值来实现那么同样就可以把每个顶点的TBN转换成四元数然后再套用之前说的四元数插值以及对齐的办法代替

相关新闻

智能文件整理工具:基于AI的多维度分类与优化实践

智能文件整理工具:基于AI的多维度分类与优化实践

1. 为什么我们需要智能文件整理工具?作为一名长期与各种项目文件打交道的开发者,我深刻理解文件管理带来的痛苦。每天面对下载文件夹里混杂的PDF、代码片段、会议记录和临时截图,手动分类不仅耗时耗力,还经常出现"整理完反而…

2026/9/23 4:08:53 阅读更多 →
从零实现ARP欺骗脚本:深入理解网络协议与中间人攻击原理

从零实现ARP欺骗脚本:深入理解网络协议与中间人攻击原理

1. 项目概述:为什么我们要自己动手写ARP欺骗脚本?如果你接触过网络安全或者渗透测试,那么“Ettercap”这个名字你一定不陌生。这个老牌的工具几乎是所有安全入门者学习中间人攻击(MITM)的第一课,它功能强大…

2026/10/16 9:34:27 阅读更多 →
Shadow架构模式:分层决策与智能资源分配实践

Shadow架构模式:分层决策与智能资源分配实践

1. Shadow架构模式的核心思想解析这个架构模式的核心在于"分层决策按需调用"的设计理念。就像医院的分诊制度,普通问题由全科医生处理,疑难杂症才转诊专家。在技术实现上,它通过建立主模型(Worker)和顾问模型…

2026/10/16 14:40:06 阅读更多 →

最新新闻

IDA逆向工程实战:从静态分析到二进制补丁的完整流程

IDA逆向工程实战:从静态分析到二进制补丁的完整流程

干逆向这一行的,绕不开IDA。不管是分析一个陌生二进制文件到底干了什么、给某个老程序打补丁,还是解CTF里的Reverse题,IDA几乎都是所有人默认打开的第一件工具。它最核心的价值就是把机器码翻译成人类能读的伪代码和汇编,同时把整…

2026/10/17 7:18:06 阅读更多 →
MySQL数据库与表管理实战:从建库建表到字符集与DDL避坑指南

MySQL数据库与表管理实战:从建库建表到字符集与DDL避坑指南

数据库管理这事,入门容易,想管得明白、少在晚上被电话叫醒,靠的全是细节。MySQL作为使用面最广的开源关系型数据库之一,大家对它的印象往往是“装完就能用”,可真到了建库建表、调整表结构、处理字符集乱码、删错数据的…

2026/10/17 7:18:06 阅读更多 →
数据加密如何重塑仓储管理系统:字段级加密、密钥与查询设计

数据加密如何重塑仓储管理系统:字段级加密、密钥与查询设计

做仓储管理系统,大家第一反应就是把入库、出库、库存台账、盘点这些业务功能铺开,最后再在功能树上挂一个“数据加密”就算交差。但这份“基于数据加密的仓库货物管理系统设计与实现任务书”的落脚点,恰恰不在“仓库货物管理”这六个字&#…

2026/10/17 7:18:06 阅读更多 →
5款AI编程神器横评:从补全到自动Debug

5款AI编程神器横评:从补全到自动Debug

2026年还没过半,AI编程工具的洗牌速度已经让不少人看花了眼。前两年大家还在为一款编辑器疯狂买单,那场面我至今记得——好像装上它,代码就能自己写完。如今再回头看,那句话不算全错,只是说得太早了。因为它擅长的本来…

2026/10/17 7:18:06 阅读更多 →
MySQL 8.0 CTE实战:从嵌套子查询到清晰报表的SQL重构指南

MySQL 8.0 CTE实战:从嵌套子查询到清晰报表的SQL重构指南

最近在做一批历史报表SQL的梳理,遇到一个印象很深的查询:统计各区域销售Top 10产品,源数据就三张表,写出来的SQL却有将近三百行,光子查询嵌套就有七层。不是说跑不动,而是后来同事想在这个基础上加一个过滤…

2026/10/17 7:18:06 阅读更多 →
鸿蒙应用运行机制详解:从点击图标到第一帧画面

鸿蒙应用运行机制详解:从点击图标到第一帧画面

上篇说完环境搭建、建完工程、能跑出“你好,鸿蒙”的页面之后,很多初学的朋友都会冒出一个问题:我就按了一下图标,屏幕上就从无到有出现了一个应用界面,这中间到底发生了什么事?这篇就专门把“应用是怎样运…

2026/10/17 7:17:05 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →