gpt4 book ai didi

c++ - 4维隐藏表面去除

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:00:55 25 4
gpt4 key购买 nike

我正在尝试编写一个 4d 小游戏。我使用 C++ 和 OpenGL。该网站对如何增强 4d 图像进行了很好的解释:
http://eusebeia.dyndns.org/4d/vis/07-hsr.html#Enhancing_4D_Projection_Images

他们告诉我们要应用 4d 隐藏表面去除 (HSR) 算法。
我不得不说我是编程和算法方面的新手,我真的不知道从哪里开始组装 4d HSR,也不是 3d HSR。
如果有人对这些算法有经验,可以解释一下如何用 C++ 翻译它吗?

顺便说一句:我在 3d 中投影 4d 空间,所以我需要一个顶点删除算法,而不是像素修改,或者至少是我的想法......我可能是错的......

最佳答案

在许多情况下,3d 隐藏表面去除意味着当您绘制表面时,您还会记住所绘制的每个像素的深度(与“眼睛”的距离)。当你去绘制一个已经绘制过表面的表面时,你只绘制比已经存在的像素更接近眼睛的像素。在 3d 图形库中,OpenGL(将 3d 场景描述投影到 2d 显示器),这称为 Depth Buffer Test .

您还可以跟踪表面朝向的方向。如果它背对着“眼睛”,那就根本不要画它。在 OpenGL 中,这是调用 backface culling .如果你想创建你的文章描述的分层透明外观,那么你必须根据深度对像素进行排序并首先绘制最深的像素。然后在顶部绘制较近的像素,用旧像素颜色和当前表面颜色的凸组合替换当前像素。

对于您的 4d 案例,您需要确定转换 4d 事物意味着什么。我认为任何同时具有动画效果的 3d 模型实际上都是 4d 模型。如果你愿意,你可以一次绘制所有的帧,就像这个模拟 Squash 运动员一样: 4d racquetball player

在这张图片中,时间在这里用灰度值表示。所以你可以看到球员在球场上移动并击球,所有这些都在一个静态图像中。当然,正确的 4d 到 2d 投影可能不会显示一堆绘制在一起的离散时间框架,而是宁愿连接桥接时间的顶点,这样您就不会看到一堆单独的球,而是看到一个“管”表示球的轨迹。但是,在您链接的文章中提到了某种类似的东西,在某些情况下,这可能会减少交流。

关于c++ - 4维隐藏表面去除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7191946/

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