news 2026/2/28 17:58:21

三角形正反面之谜:三个点如何决定朝向?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
三角形正反面之谜:三个点如何决定朝向?

你在做 3D 的时候,迟早会遇到一个“灵异事件”:

  • 模型明明在眼前,结果转个角度它就消失了
  • 开了背面剔除(Backface Culling),模型像被削了一层皮
  • 做了镜像(Scale = -1),整个模型忽然“里外翻转”
  • 阴影破洞、轮廓闪烁、某些面忽隐忽现

这时候很多人第一反应是:法线坏了?shader 写错了?深度不对?
但真相经常更“朴实无华”——三角形顶点顺序(绕序 / winding order)反了

今天我们就用大白话把它讲透:
三角形只有三个点,凭啥就能区分正反面?GPU 又是用什么“底层逻辑”识别的?
别担心,本文不会堆公式吓人,但该讲清楚的逻辑会讲得很扎实,让你以后遇到“翻面”问题不再玄学。


1. 先把结论拍在桌上:正反面不是“看起来像哪边”,而是“点的顺序决定的”

一个三角形由三个顶点组成:A、B、C。
在空间里,A、B、C 这三个点的位置固定,这个三角形的形状也固定。

但是!
你把顶点按顺序连起来,会出现两种写法:

  • A → B → C
  • A → C → B

它们在几何上是同一个三角形,但在渲染里,它们代表两个相反的“朝向”
这就是所谓的绕序(winding)

  • 看上去顶点顺着某个方向绕了一圈
  • 顺时针(CW
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/27 16:56:21

大整数哈希

求解代码 public static void main(String[] args) throws IOException {BufferedReader br new BufferedReader(new InputStreamReader(System.in));StringTokenizer in new StringTokenizer(br.readLine());PrintWriter out new PrintWriter(new OutputStreamWriter(Syst…

作者头像 李华
网站建设 2026/2/28 0:37:01

Windows 也能跑 OpenClaw!最完整安装教程 + 飞书接入,全程避坑

⚠️ 小贴士:在开始之前,有一个非常重要的提醒:由于此类工具涉及自动化操作和环境配置,如果你的电脑存有重要的商业/资产或个人隐私信息,强烈建议弄一台干净的备用设备,或者直接租用一个云端虚拟机&#xf…

作者头像 李华
网站建设 2026/2/27 1:15:55

SameSite=Lax属性(前端Set-Cookie属性)(跨站链接跳转保留登录态、防御跨站请求POST CSRF、防御跨站请求资源CSRF)子资源请求、安全铁三角HttpOnlySecure

文章目录SameSiteLax:在安全与体验间走钢丝的现代 Cookie 智慧🌉 为什么需要 Lax?—— 从“安全困境”说起❌ Strict 的代价❌ None 的风险✅ Lax 的破局🔬 深度解析:Lax 到底“宽松”在哪里?📊…

作者头像 李华
网站建设 2026/2/27 14:31:14

PWA 渐进式Web应用(Progressive Web App)快应用、离线应用(用Web技术构建原生应用体验网站)manifest.json、Service Worker、Instant App

文章目录 拥抱未来:用PWA打造「离线可用、秒开体验」的现代Web应用🌱 什么是PWA?不止是“网页升级版”🔑 PWA的三大支柱技术🌟 为什么开发者与用户都爱PWA?✅ 对用户:✅ 对开发者/企业&#xff…

作者头像 李华