gpt4 book ai didi

c++ - Flash vector 图形背后的数学?

转载 作者:行者123 更新时间:2023-11-28 06:49:20 24 4
gpt4 key购买 nike

我一直在寻找 vector 图形和 Flash 很长一段时间,但我还没有真正找到我要找的东西。谁能确切地告诉我在 3D 空间中构建 vector 图像需要哪些数学领域?这只是 vector 数学吗?我看到了一些 C++ 库,但我不确定它是否是那种像 flash 图像一样用于较小文件大小的 vector 。提前致谢。

最佳答案

如果您想从头开始做某事(如果您不想的话,那里有很多开源库),请记住“vector 图形”(这与 3D 空间的概念不同 vector )本身通常基于贝塞尔曲线等参数曲线,这些曲线本质上是每个 xy 和/或 z 的三次多项式从 0 到 1 的值 t 参数化的点。现在将您使用这些曲线创建的纹理贴图图像(即所谓的“vector 图形”图像)通过 uv 投影到三角形多边形上坐标将涉及一些插值,这是相当简单的线性代数,因为您将利用三角形多边形表面上 3D 点的重心坐标来计算要从纹理中查找的 uv 点。

基本上步骤是:

  1. 创建基于参数曲线的图像(即“vector 图形”)并从中制作纹理贴图
  2. 该纹理贴图将具有 uv 坐标
  3. 栅格化 3D 三角形多边形时,您将从三角形多边形的实际 3D 点获得三角形表面的重心坐标。多边形的那些点也应该分配有 UV 坐标。
  4. 使用重心坐标计算纹理贴图上的 uv 坐标。
  5. 当您从纹理贴图中获得该颜色时,然后为三角形着色(即,计算光照等,如果您正在这样做,或者如果没有光照,则只保存像素的该颜色)。<

请注意我还没有进入抗锯齿,那是完全不同的野兽。如果您不知道自己在做什么,最好的办法是通过 super 采样简单地强制抗锯齿(即渲染一个非常大的图像,然后平均像素以将其缩小到所需的大小)。

如果您学过多元微积分,应该熟悉参数化曲线和曲面背后的概念,并且需要对线性代数有基本的了解才能使用重心坐标和 3D vector 的线性插值。

关于c++ - Flash vector 图形背后的数学?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24314123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com