Files
thejinchao.github.io/note/graphics/rasterization/raster03.html
T

42 lines
47 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="zh-CN" data-theme="light">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="generator" content="VuePress 2.0.0-rc.24" />
<meta name="theme" content="VuePress Theme Hope 2.0.0-rc.94" />
<style>
:root {
--vp-c-bg: #fff;
}
[data-theme="dark"] {
--vp-c-bg: #1b1b1f;
}
html,
body {
background: var(--vp-c-bg);
}
</style>
<script>
const userMode = localStorage.getItem("vuepress-theme-hope-scheme");
const systemDarkMode =
window.matchMedia &&
window.matchMedia("(prefers-color-scheme: dark)").matches;
if (userMode === "dark" || (userMode !== "light" && systemDarkMode)) {
document.documentElement.setAttribute("data-theme", "dark");
}
</script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","headline":"像素遍历","image":[""],"dateModified":"2025-07-13T10:53:44.000Z","author":[{"@type":"Person","name":"JinChao","url":"https://thecodeway.com"}]}</script><meta property="og:url" content="https://thejinchao.github.io/note/graphics/rasterization/raster03.html"><meta property="og:site_name" content="我的博客和笔记"><meta property="og:title" content="像素遍历"><meta property="og:description" content="像素遍历 5. 像素遍历 像素遍历是指光栅化中重要的一个环节,是指找到三角形内部像素的过程,同时也要计算出像素对应的属性,比如颜色,深度等。 5.1 扫描线算法 (略...) 5.2 分块算法 分块算法是将绘制区域分成方块(Title),逐个方块进行光栅化。 Title的大小最小为,逐级按照4倍递增,也就是,比如下面图中这个三角形所在的绘制区域,大小为..."><meta property="og:type" content="article"><meta property="og:locale" content="zh-CN"><meta property="og:updated_time" content="2025-07-13T10:53:44.000Z"><meta property="article:modified_time" content="2025-07-13T10:53:44.000Z"><title>像素遍历 | 我的博客和笔记</title><meta name="description" content="像素遍历 5. 像素遍历 像素遍历是指光栅化中重要的一个环节,是指找到三角形内部像素的过程,同时也要计算出像素对应的属性,比如颜色,深度等。 5.1 扫描线算法 (略...) 5.2 分块算法 分块算法是将绘制区域分成方块(Title),逐个方块进行光栅化。 Title的大小最小为,逐级按照4倍递增,也就是,比如下面图中这个三角形所在的绘制区域,大小为...">
<link rel="preload" href="/assets/style-DeGCDZm0.css" as="style"><link rel="stylesheet" href="/assets/style-DeGCDZm0.css">
<link rel="modulepreload" href="/assets/app-D3AKSfRn.js"><link rel="modulepreload" href="/assets/raster03.html-CSQ7KYrC.js"><link rel="modulepreload" href="/assets/plugin-vue_export-helper-DlAUqK2U.js">
<link rel="prefetch" href="/assets/about.html-CDxzD201.js" as="script"><link rel="prefetch" href="/assets/index.html-BXRPIBQA.js" as="script"><link rel="prefetch" href="/assets/index.html-C7IQ54wI.js" as="script"><link rel="prefetch" href="/assets/index.html-74HSAT8I.js" as="script"><link rel="prefetch" href="/assets/flip_coin.html-C2VXYLGk.js" as="script"><link rel="prefetch" href="/assets/index.html-DIDVRhS5.js" as="script"><link rel="prefetch" href="/assets/mental_poker.html-C4wWxbzk.js" as="script"><link rel="prefetch" href="/assets/rsa.html-DvV0l5Hu.js" as="script"><link rel="prefetch" href="/assets/index.html-U3MRd6ep.js" as="script"><link rel="prefetch" href="/assets/index.html-Cl-62phe.js" as="script"><link rel="prefetch" href="/assets/group.html-VKFGt_1O.js" as="script"><link rel="prefetch" href="/assets/index.html-DtymmQmX.js" as="script"><link rel="prefetch" href="/assets/number_theory_1.html-Be5E8aPO.js" as="script"><link rel="prefetch" href="/assets/number_theory_2.html-BaCjj8W5.js" as="script"><link rel="prefetch" href="/assets/number_theory_3.html-TAXWQSZg.js" as="script"><link rel="prefetch" href="/assets/probability.html-BDTR0CTK.js" as="script"><link rel="prefetch" href="/assets/symbol.html-ChKxn-t2.js" as="script"><link rel="prefetch" href="/assets/DH.html-CEcOPFce.js" as="script"><link rel="prefetch" href="/assets/Ellipse.html-DhPcC58t.js" as="script"><link rel="prefetch" href="/assets/Fibonacci.html-B5AIaAwQ.js" as="script"><link rel="prefetch" href="/assets/JPEG001.html-TCX9GlHR.js" as="script"><link rel="prefetch" href="/assets/JPEG002.html-BjclB0DL.js" as="script"><link rel="prefetch" href="/assets/JPEG003.html-F-OAcA8P.js" as="script"><link rel="prefetch" href="/assets/JPEG004.html-CHIWWtyj.js" as="script"><link rel="prefetch" href="/assets/JPEG005.html-BCs5gV64.js" as="script"><link rel="prefetch" href="/assets/Martingle.html-D-w6iybC.js" as="script"><link rel="prefetch" href="/assets/MentalPoker01.html-DT2BV3PR.js" as="script"><link rel="prefetch" href="/assets/MentalPoker02.html-Cq3Mqb2M.js" as="script"><link rel="prefetch" href="/assets/RandRound.html-CdOm_YEl.js" as="script"><link rel="prefetch" href="/assets/SPH001.html-DrxiUhcY.js" as="script"><link rel="prefetch" href="/assets/SPH002.html-BIVeV7VZ.js" as="script"><link rel="prefetch" href="/assets/SPH003.html-BdbvyIm5.js" as="script"><link rel="prefetch" href="/assets/SPH004.html-_g8ufwoh.js" as="script"><link rel="prefetch" href="/assets/SegmentCircle.html-B7ZPX8kO.js" as="script"><link rel="prefetch" href="/assets/BezierLine01.html-w_ZbVoC8.js" as="script"><link rel="prefetch" href="/assets/BezierLine02.html-D2cxbxuA.js" as="script"><link rel="prefetch" href="/assets/index.html-Dbx66n5R.js" as="script"><link rel="prefetch" href="/assets/ibl_01.html-BlvoiHVH.js" as="script"><link rel="prefetch" href="/assets/ibl_02.html-D5CcK5lZ.js" as="script"><link rel="prefetch" href="/assets/index.html-BMDkfpmh.js" as="script"><link rel="prefetch" href="/assets/index.html-CEXMNbqY.js" as="script"><link rel="prefetch" href="/assets/math_01.html-CQVFFk_i.js" as="script"><link rel="prefetch" href="/assets/math_02.html-ClvXxo2W.js" as="script"><link rel="prefetch" href="/assets/math_03.html-DShuz2wn.js" as="script"><link rel="prefetch" href="/assets/transform_01.html-C82GpEoh.js" as="script"><link rel="prefetch" href="/assets/transform_02.html-D9vtV1PR.js" as="script"><link rel="prefetch" href="/assets/transform_03.html-CC8m411T.js" as="script"><link rel="prefetch" href="/assets/transform_04.html-BU7RbmKR.js" as="script"><link rel="prefetch" href="/assets/index.html-DhaiQA0-.js" as="script"><link rel="prefetch" href="/assets/raster01.html-C8SCMBWG.js" as="script"><link rel="prefetch" href="/assets/raster02.html-C0vHVChj.js" as="script"><link rel="prefetch" href="/assets/function.html-SjU2HZQ7.js" as="script"><link rel="prefetch" href="/assets/grammar.html-D7g-eVeA.js" as="script"><link rel="prefetch" href="/assets/helloworld.html-B2PiKFI_.js" as="script"><link rel="prefetch" href="/assets/index.html-C-qXdQC2.js" as="script"><link rel="prefetch" href="/assets/object_and_class.html-DEEapHSR.js" as="script"><link rel="prefetch" href="/assets/BRDF.html-Byrs-7I3.js" as="script"><link rel="prefetch" href="/assets/illumination_model_01.html-BcL4gx34.js" as="script"><link rel="prefetch" href="/assets/luminosity.html-DQqV92EF.js" as="script"><link rel="prefetch" href="/assets/microfacets_1.html-D0nFow5V.js" as="script"><link rel="prefetch" href="/assets/microfacets_2.html-CNCJHtUX.js" as="script"><link rel="prefetch" href="/assets/microfacets_3.html-BHeRowQ7.js" as="script"><link rel="prefetch" href="/assets/render_function_1.html-1dHTomzt.js" as="script"><link rel="prefetch" href="/assets/404.html-ChqgQLmR.js" as="script"><link rel="prefetch" href="/assets/index.html-BQL2xmwN.js" as="script"><link rel="prefetch" href="/assets/index.html-B_4f5N0z.js" as="script"><link rel="prefetch" href="/assets/index.html-DOf8x_AC.js" as="script"><link rel="prefetch" href="/assets/index.html-DcdGe3OS.js" as="script"><link rel="prefetch" href="/assets/index.html-DfQJKKjU.js" as="script"><link rel="prefetch" href="/assets/index.html-BJyvUwts.js" as="script"><link rel="prefetch" href="/assets/index.html-C3Ow3Bk7.js" as="script"><link rel="prefetch" href="/assets/index.html-DPNBVnWa.js" as="script"><link rel="prefetch" href="/assets/photoswipe.esm-CKV1Bsxh.js" as="script">
</head>
<body>
<div id="app"><!--[--><!--[--><!--[--><span tabindex="-1"></span><a href="#main-content" class="vp-skip-link sr-only">跳至主要內容</a><!--]--><!--[--><div class="theme-container external-link-icon" vp-container><!--[--><header id="navbar" class="vp-navbar" vp-navbar><div class="vp-navbar-start"><button type="button" class="vp-toggle-sidebar-button" title="Toggle Sidebar"><span class="icon"></span></button><!--[--><a class="route-link vp-brand" href="/" aria-label="带我回家"><img class="vp-nav-logo" src="/favicon.png" alt><!----><span class="vp-site-name hide-in-pad">我的博客和笔记</span></a><!--]--></div><div class="vp-navbar-center"><!--[--><nav class="vp-nav-links"><div class="vp-nav-item hide-in-mobile"><a class="route-link auto-link" href="/" aria-label="主页"><!--[--><iconify-icon class="vp-icon" icon="fa6-solid:house" sizing="height" height="1em"></iconify-icon><!--]-->主页<!----></a></div><div class="vp-nav-item hide-in-mobile"><a class="route-link auto-link" href="/blog/" aria-label="文章"><!--[--><iconify-icon class="vp-icon" icon="fa6-solid:book" sizing="height" height="1em"></iconify-icon><!--]-->文章<!----></a></div><div class="vp-nav-item hide-in-mobile"><div class="vp-dropdown-wrapper"><button type="button" class="vp-dropdown-title" aria-label="开源项目"><!--[--><iconify-icon class="vp-icon" icon="fa6-solid:diagram-project" sizing="height" height="1em"></iconify-icon>开源项目<!--]--><span class="arrow"></span><ul class="vp-dropdown"><li class="vp-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/turbolink" aria-label="TurboLink" rel="noopener noreferrer" target="_blank"><!---->TurboLink<!----></a></li><li class="vp-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/TinyEncrypt" aria-label="TinyEncrypt" rel="noopener noreferrer" target="_blank"><!---->TinyEncrypt<!----></a></li><li class="vp-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/ue5-style-guide" aria-label="UnrealStyleGuide" rel="noopener noreferrer" target="_blank"><!---->UnrealStyleGuide<!----></a></li><li class="vp-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/AxTrace" aria-label="AxTrace" rel="noopener noreferrer" target="_blank"><!---->AxTrace<!----></a></li><li class="vp-dropdown-item"><a class="auto-link external-link" href="https://github.com/thejinchao/cyclone" aria-label="Cyclone" rel="noopener noreferrer" target="_blank"><!---->Cyclone<!----></a></li></ul></button></div></div><div class="vp-nav-item hide-in-mobile"><div class="vp-dropdown-wrapper"><button type="button" class="vp-dropdown-title" aria-label="个人笔记"><!--[--><iconify-icon class="vp-icon" icon="fa6-solid:lightbulb" sizing="height" height="1em"></iconify-icon>个人笔记<!--]--><span class="arrow"></span><ul class="vp-dropdown"><li class="vp-dropdown-item"><a class="route-link auto-link" href="/note/math/" aria-label="数学相关"><!---->数学相关<!----></a></li><li class="vp-dropdown-item"><a class="route-link route-link-active auto-link" href="/note/graphics/" aria-label="图形学"><!---->图形学<!----></a></li><li class="vp-dropdown-item"><a class="route-link auto-link" href="/note/cryptography/" aria-label="密码学"><!---->密码学<!----></a></li><li class="vp-dropdown-item"><a class="route-link auto-link" href="/note/language/" aria-label="编程语言"><!---->编程语言<!----></a></li></ul></button></div></div><div class="vp-nav-item hide-in-mobile"><a class="route-link auto-link" href="/about.html" aria-label="关于"><!--[--><iconify-icon class="vp-icon" icon="fa6-solid:user-astronaut" sizing="height" height="1em"></iconify-icon><!--]-->关于<!----></a></div></nav><!--]--></div><div class="vp-navbar-end"><!--[--><!----><!----><div class="vp-nav-item hide-in-mobile"><button type="button" class="vp-color-mode-switch" id="color-mode-switch"><svg xmlns="http://www.w3.org/2000/svg" class="icon auto-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="auto icon" name="auto" style="display:block;"><path d="M512 992C246.92 992 32 777.08 32 512S246.92 32 512 32s480 214.92 480 480-214.92 480-480 480zm0-840c-198.78 0-360 161.22-360 360 0 198.84 161.22 360 360 360s360-161.16 360-360c0-198.78-161.22-360-360-360zm0 660V212c165.72 0 300 134.34 300 300 0 165.72-134.28 300-300 300z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" class="icon dark-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="dark icon" name="dark" style="display:none;"><path d="M524.8 938.667h-4.267a439.893 439.893 0 0 1-313.173-134.4 446.293 446.293 0 0 1-11.093-597.334A432.213 432.213 0 0 1 366.933 90.027a42.667 42.667 0 0 1 45.227 9.386 42.667 42.667 0 0 1 10.24 42.667 358.4 358.4 0 0 0 82.773 375.893 361.387 361.387 0 0 0 376.747 82.774 42.667 42.667 0 0 1 54.187 55.04 433.493 433.493 0 0 1-99.84 154.88 438.613 438.613 0 0 1-311.467 128z"></path></svg><svg xmlns="http://www.w3.org/2000/svg" class="icon light-icon" viewBox="0 0 1024 1024" fill="currentColor" aria-label="light icon" name="light" style="display:none;"><path d="M952 552h-80a40 40 0 0 1 0-80h80a40 40 0 0 1 0 80zM801.88 280.08a41 41 0 0 1-57.96-57.96l57.96-58a41.04 41.04 0 0 1 58 58l-58 57.96zM512 752a240 240 0 1 1 0-480 240 240 0 0 1 0 480zm0-560a40 40 0 0 1-40-40V72a40 40 0 0 1 80 0v80a40 40 0 0 1-40 40zm-289.88 88.08-58-57.96a41.04 41.04 0 0 1 58-58l57.96 58a41 41 0 0 1-57.96 57.96zM192 512a40 40 0 0 1-40 40H72a40 40 0 0 1 0-80h80a40 40 0 0 1 40 40zm30.12 231.92a41 41 0 0 1 57.96 57.96l-57.96 58a41.04 41.04 0 0 1-58-58l58-57.96zM512 832a40 40 0 0 1 40 40v80a40 40 0 0 1-80 0v-80a40 40 0 0 1 40-40zm289.88-88.08 58 57.96a41.04 41.04 0 0 1-58 58l-57.96-58a41 41 0 0 1 57.96-57.96z"></path></svg></button></div><!----><!--]--><button type="button" class="vp-toggle-navbar-button" aria-label="Toggle Navbar" aria-expanded="false" aria-controls="nav-screen"><span><span class="vp-top"></span><span class="vp-middle"></span><span class="vp-bottom"></span></span></button></div></header><!----><!--]--><!----><div class="toggle-sidebar-wrapper"><span class="arrow start"></span></div><aside id="sidebar" class="vp-sidebar" vp-sidebar><!----><ul class="vp-sidebar-links"><li><a class="route-link auto-link vp-sidebar-link" href="/" aria-label="主页"><!--[--><iconify-icon class="vp-icon" icon="fa6-solid:house" sizing="both" width="1em" height="1em"></iconify-icon><!--]-->主页<!----></a></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><iconify-icon class="vp-icon" icon="fa6-solid:book" sizing="both" width="1em" height="1em"></iconify-icon><span class="vp-sidebar-title">我的文章</span><span class="vp-arrow down"></span></button><ul class="vp-sidebar-links"><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">从抛币协议到智能合约</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">JPEG算法解密</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">SPH算法简介</span><span class="vp-arrow end"></span></button><!----></section></li><li><a class="route-link auto-link vp-sidebar-link" href="/blog/2025/02/Martingle.html" aria-label="赌博中的数学:Martingle策略"><!---->赌博中的数学:Martingle策略<!----></a></li><li><a class="route-link auto-link vp-sidebar-link" href="/blog/2025/02/RandRound.html" aria-label="如何生成一个随机的圆形"><!---->如何生成一个随机的圆形<!----></a></li><li><a class="route-link auto-link vp-sidebar-link" href="/blog/2025/02/DH.html" aria-label="一个简单的DH密钥协商算法的实现"><!---->一个简单的DH密钥协商算法的实现<!----></a></li><li><a class="route-link auto-link vp-sidebar-link" href="/blog/2025/02/SegmentCircle.html" aria-label="如何计算线段和圆的交点"><!---->如何计算线段和圆的交点<!----></a></li><li><a class="route-link auto-link vp-sidebar-link" href="/blog/2025/02/Ellipse.html" aria-label="一道数学趣题"><!---->一道数学趣题<!----></a></li><li><a class="route-link auto-link vp-sidebar-link" href="/blog/2025/02/Fibonacci.html" aria-label="斐波那契数列和1/89"><!---->斐波那契数列和1/89<!----></a></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">匀速贝塞尔曲线运动的实现</span><span class="vp-arrow end"></span></button><!----></section></li></ul></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><iconify-icon class="vp-icon" icon="fa6-solid:diagram-project" sizing="both" width="1em" height="1em"></iconify-icon><span class="vp-sidebar-title">开源项目</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable active" type="button"><iconify-icon class="vp-icon" icon="fa6-solid:lightbulb" sizing="both" width="1em" height="1em"></iconify-icon><span class="vp-sidebar-title">学习笔记</span><span class="vp-arrow down"></span></button><ul class="vp-sidebar-links"><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">数学相关</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">密码学</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable active" type="button"><!----><span class="vp-sidebar-title">图形学</span><span class="vp-arrow down"></span></button><ul class="vp-sidebar-links"><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">数学基础</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable active" type="button"><!----><span class="vp-sidebar-title">光栅化</span><span class="vp-arrow down"></span></button><ul class="vp-sidebar-links"><li><a class="route-link auto-link vp-sidebar-link" href="/note/graphics/rasterization/raster01.html" aria-label="基础"><!---->基础<!----></a></li><li><a class="route-link auto-link vp-sidebar-link" href="/note/graphics/rasterization/raster02.html" aria-label="边界判定"><!---->边界判定<!----></a></li><li><a class="route-link route-link-active auto-link vp-sidebar-link active" href="/note/graphics/rasterization/raster03.html" aria-label="像素遍历"><!---->像素遍历<!----></a></li></ul></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">光照模型</span><span class="vp-arrow end"></span></button><!----></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">环境光渲染</span><span class="vp-arrow end"></span></button><!----></section></li></ul></section></li><li><section class="vp-sidebar-group"><button class="vp-sidebar-header clickable" type="button"><!----><span class="vp-sidebar-title">编程语言</span><span class="vp-arrow end"></span></button><!----></section></li></ul></section></li></ul><!----></aside><!--[--><main id="main-content" class="vp-page"><!--[--><!----><!----><nav class="vp-breadcrumb disable"></nav><div class="vp-page-title"><h1><!---->像素遍历</h1><!----><hr></div><!----><div class="" vp-content><!----><div id="markdown-content"><h1 id="像素遍历" tabindex="-1"><a class="header-anchor" href="#像素遍历"><span>像素遍历</span></a></h1><hr><h2 id="_5-像素遍历" tabindex="-1"><a class="header-anchor" href="#_5-像素遍历"><span>5. 像素遍历</span></a></h2><p>像素遍历是指光栅化中重要的一个环节,是指找到三角形内部像素的过程,同时也要计算出像素对应的属性,比如颜色,深度等。</p><h3 id="_5-1-扫描线算法" tabindex="-1"><a class="header-anchor" href="#_5-1-扫描线算法"><span>5.1 扫描线算法</span></a></h3><p>(略...)</p><h3 id="_5-2-分块算法" tabindex="-1"><a class="header-anchor" href="#_5-2-分块算法"><span>5.2 分块算法</span></a></h3><p>分块算法是将绘制区域分成方块(Title),逐个方块进行光栅化。 Title的大小最小为<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:0;" xmlns="http://www.w3.org/2000/svg" width="5.028ex" height="1.532ex" role="img" focusable="false" viewBox="0 -677 2222.4 677" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(1722.4,0)"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>4</mn><mo>×</mo><mn>4</mn></math></mjx-assistive-mml></mjx-container>,逐级按照4倍递增,也就是<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:-0.439ex;" xmlns="http://www.w3.org/2000/svg" width="25.268ex" height="1.971ex" role="img" focusable="false" viewBox="0 -677 11168.7 871" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(1722.4,0)"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mo" transform="translate(2222.4,0)"><path data-c="2C" d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"></path></g><g data-mml-node="mn" transform="translate(2667.1,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(3889.3,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(4889.6,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(5889.6,0)"><path data-c="2C" d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"></path></g><g data-mml-node="mn" transform="translate(6334.2,0)"><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(7556.4,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(8556.7,0)"><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(9556.7,0)"><path data-c="2C" d="M78 35T78 60T94 103T137 121Q165 121 187 96T210 8Q210 -27 201 -60T180 -117T154 -158T130 -185T117 -194Q113 -194 104 -185T95 -172Q95 -168 106 -156T131 -126T157 -76T173 -3V9L172 8Q170 7 167 6T161 3T152 1T140 0Q113 0 96 17Z"></path></g><g data-mml-node="mo" transform="translate(10001.3,0)"><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z"></path></g><g data-mml-node="mo" transform="translate(10446,0)"><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z"></path></g><g data-mml-node="mo" transform="translate(10890.7,0)"><path data-c="2E" d="M78 60Q78 84 95 102T138 120Q162 120 180 104T199 61Q199 36 182 18T139 0T96 17T78 60Z"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>4</mn><mo>×</mo><mn>4</mn><mo>,</mo><mn>16</mn><mo>×</mo><mn>16</mn><mo>,</mo><mn>64</mn><mo>×</mo><mn>64</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo></math></mjx-assistive-mml></mjx-container>,比如下面图中这个三角形所在的绘制区域,大小为<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:-0.05ex;" xmlns="http://www.w3.org/2000/svg" width="7.291ex" height="1.581ex" role="img" focusable="false" viewBox="0 -677 3222.4 699" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z"></path><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z" transform="translate(500,0)"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>64</mn><mo>×</mo><mn>64</mn></math></mjx-assistive-mml></mjx-container>,正好是一个Title。</p><figure><img src="/assets/title_64-_FgKh5nb.jpg" alt="" tabindex="0" loading="lazy"><figcaption>一个要被光栅化的三角形,显示在64×64的Title中</figcaption></figure><p>将这个Title分成<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:0;" xmlns="http://www.w3.org/2000/svg" width="5.028ex" height="1.532ex" role="img" focusable="false" viewBox="0 -677 2222.4 677" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(1722.4,0)"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>4</mn><mo>×</mo><mn>4</mn></math></mjx-assistive-mml></mjx-container>份,每份<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:-0.05ex;" xmlns="http://www.w3.org/2000/svg" width="7.291ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 3222.4 688" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(500,0)"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>16</mn><mo>×</mo><mn>16</mn></math></mjx-assistive-mml></mjx-container>大小的方块, 计算有哪些方块被三角形覆盖</p><figure><img src="/assets/title_16-iJhhK4Yu.jpg" alt="" tabindex="0" loading="lazy"><figcaption>一共有16个方块需要被测定是否碰触到三角形</figcaption></figure><p>判定只有一个<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:-0.05ex;" xmlns="http://www.w3.org/2000/svg" width="7.291ex" height="1.557ex" role="img" focusable="false" viewBox="0 -666 3222.4 688" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(500,0)"></path></g><g data-mml-node="mo" transform="translate(1222.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(2222.4,0)"><path data-c="31" d="M213 578L200 573Q186 568 160 563T102 556H83V602H102Q149 604 189 617T245 641T273 663Q275 666 285 666Q294 666 302 660V361L303 61Q310 54 315 52T339 48T401 46H427V0H416Q395 3 257 3Q121 3 100 0H88V46H114Q136 46 152 46T177 47T193 50T201 52T207 57T213 61V578Z"></path><path data-c="36" d="M42 313Q42 476 123 571T303 666Q372 666 402 630T432 550Q432 525 418 510T379 495Q356 495 341 509T326 548Q326 592 373 601Q351 623 311 626Q240 626 194 566Q147 500 147 364L148 360Q153 366 156 373Q197 433 263 433H267Q313 433 348 414Q372 400 396 374T435 317Q456 268 456 210V192Q456 169 451 149Q440 90 387 34T253 -22Q225 -22 199 -14T143 16T92 75T56 172T42 313ZM257 397Q227 397 205 380T171 335T154 278T148 216Q148 133 160 97T198 39Q222 21 251 21Q302 21 329 59Q342 77 347 104T352 209Q352 289 347 316T329 361Q302 397 257 397Z" transform="translate(500,0)"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>16</mn><mo>×</mo><mn>16</mn></math></mjx-assistive-mml></mjx-container>块碰触到三角形, 也就是上图中黄色方块, 然后再把这个块分为16个<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:0;" xmlns="http://www.w3.org/2000/svg" width="5.028ex" height="1.532ex" role="img" focusable="false" viewBox="0 -677 2222.4 677" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(1722.4,0)"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>4</mn><mo>×</mo><mn>4</mn></math></mjx-assistive-mml></mjx-container>的块,再次判断</p><figure><img src="/assets/title_4_0-DKeQdDgc.jpg" alt="" tabindex="0" loading="lazy"><figcaption>需要计算16个4×4的方块是否碰触到三角形</figcaption></figure><p>计算出其中5个<mjx-container class="MathJax" jax="SVG" style="position:relative;"><svg style="vertical-align:0;" xmlns="http://www.w3.org/2000/svg" width="5.028ex" height="1.532ex" role="img" focusable="false" viewBox="0 -677 2222.4 677" aria-hidden="true"><g stroke="currentColor" fill="currentColor" stroke-width="0" transform="scale(1,-1)"><g data-mml-node="math"><g data-mml-node="mn"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g><g data-mml-node="mo" transform="translate(722.2,0)"><path data-c="D7" d="M630 29Q630 9 609 9Q604 9 587 25T493 118L389 222L284 117Q178 13 175 11Q171 9 168 9Q160 9 154 15T147 29Q147 36 161 51T255 146L359 250L255 354Q174 435 161 449T147 471Q147 480 153 485T168 490Q173 490 175 489Q178 487 284 383L389 278L493 382Q570 459 587 475T609 491Q630 491 630 471Q630 464 620 453T522 355L418 250L522 145Q606 61 618 48T630 29Z"></path></g><g data-mml-node="mn" transform="translate(1722.4,0)"><path data-c="34" d="M462 0Q444 3 333 3Q217 3 199 0H190V46H221Q241 46 248 46T265 48T279 53T286 61Q287 63 287 115V165H28V211L179 442Q332 674 334 675Q336 677 355 677H373L379 671V211H471V165H379V114Q379 73 379 66T385 54Q393 47 442 46H471V0H462ZM293 211V545L74 212L183 211H293Z"></path></g></g></g></svg><mjx-assistive-mml unselectable="on" display="inline"><math xmlns="http://www.w3.org/1998/Math/MathML"><mn>4</mn><mo>×</mo><mn>4</mn></math></mjx-assistive-mml></mjx-container>块碰触到了三角形, 逐个对这5个方块进行填充处理</p><figure><img src="/assets/title_4_1-B5fkCEh0.png" alt="" tabindex="0" loading="lazy"><figcaption>从第一个Title到最后一个Title进行光栅化</figcaption></figure><p>分块算法的好处是可以进行并行处理,非常适合通过GPU计算。</p><h4 id="_5-2-1-方块和直线的关系" tabindex="-1"><a class="header-anchor" href="#_5-2-1-方块和直线的关系"><span>5.2.1 方块和直线的关系</span></a></h4><p>方块和直线的关系有三种: 相交、在直线内侧、在直线外侧</p><figure><img src="/assets/edge_title-CFr2ugQa.svg" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><p>根据直线的方向,方块的四个角中有一个“排除角”和一个“接受角”可以用于快速判断方块和直线的关系。 例如上面这条直线方向是指向右上方,那么方块左上角为“排斥角(RejectCorner)”,用红色表示,右下角为“接受角(AcceptCorner)”,用绿色表示。</p><ul><li>如果排斥角在直线外侧,那么方块一定是在直线的外侧</li><li>如果接受角在直线内侧,那么方块一定在直线的内侧</li><li>如果排斥角在直线内测同时接受角在直线外侧,那么方块和直线相交</li></ul><p>随着直线方向的不同,方块的“排除角”和“接受角”也不同</p><figure><img src="/assets/edge_title_four-pyNq2hCG.svg" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><h4 id="_5-2-2-方块和三角形的关系" tabindex="-1"><a class="header-anchor" href="#_5-2-2-方块和三角形的关系"><span>5.2.2 方块和三角形的关系</span></a></h4><p>方块和三角形的关系也有三种:外侧、内侧或者相交:</p><ul><li>如果方块在<strong>任意</strong>一条边的外侧,那么方块一定在三角形外</li></ul><figure><img src="/assets/triangle_title_0-Can4WStV.svg" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><ul><li>如果方块在<strong>所有</strong>三条边的内侧,那么方块一定在三角形内侧</li></ul><figure><img src="/assets/triangle_title_1-QR6k_O9b.svg" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><ul><li>其他情况,方块可能在三角形外侧也可能相交</li></ul><figure><img src="/assets/triangle_title_2-BqPybX-w.svg" alt="" tabindex="0" loading="lazy"><figcaption>和三条边全相交</figcaption></figure><figure><img src="/assets/triangle_title_3-BNP2JxgU.svg" alt="" tabindex="0" loading="lazy"><figcaption>相交和在内侧的情况都存在</figcaption></figure><p>在分块光栅化算法中</p><ul><li>如果方块在三角形外侧(也就是出现在任意一条边的外侧),则可以直接忽略;</li><li>如果在内侧(也就是出现在所有边的内侧)),则全部填充;</li><li>如果是其他情况,方块可能和三角形相交也可能出现在外侧,需要进一步分拆方块为更小的方块进行判断</li></ul></div><!----><!----><!----></div><footer class="vp-page-meta"><!----><div class="vp-meta-item git-info"><!----><!----></div></footer><!----><!----><!----><!--]--></main><!--]--><footer class="vp-footer-wrapper" vp-footer><div class="vp-footer">使用 <a href="https://theme-hope.vuejs.press/zh/" target="_blank">VuePress Theme Hope</a> 主题 | <a href="https://beian.miit.gov.cn/" target="_blank">京ICP备16018986号-1</a></div><!----></footer></div><!--]--><!--]--><!--[--><!----><!--[--><!--]--><!--]--><!--]--></div>
<script type="module" src="/assets/app-D3AKSfRn.js" defer></script>
</body>
</html>