首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乌云上丑陋的渲染

乌云上丑陋的渲染
EN

Stack Overflow用户
提问于 2014-11-05 00:34:12
回答 2查看 333关注 0票数 3

我正在尝试从本教程实现代码,但比例要大得多(radius = 100000单元)。

我不知道大小是否重要,但在我的地球上,云有一个奇怪的渲染。正如本教程所做的,我使用两个球和三个纹理(地球地图,凹凸地图,云)。

这里的结果(如果云层越近,情况会更糟):

云层离行星表面越近,这种小故障就越明显。如果云层足够远(但这是不现实的),问题就会完全消失。

我能做什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-05 01:47:39

使用对数深度缓冲器而不是线性缓冲区。这是一个非常简单的更改,只需在创建logarithmicDepthBuffer时启用THREE.WebGLRenderer,如下所示:

代码语言:javascript
复制
var renderer = new THREE.WebGLRenderer({ antialias: true, logarithmicDepthBuffer: true});

下面是一个您可以查看的示例:对数深度缓冲器

按照polygonOffset的建议,使用LJ_1102是一种可能,但它不应该是必要的。

票数 5
EN

Stack Overflow用户

发布于 2014-11-05 01:09:35

由于深度缓冲区解析不足,您正在体验的是Z格斗

你基本上有三种选择来抵消这种情况:

  1. 编写/使用一个多纹理着色器,在一个球体上渲染所有三个纹理。
  2. 增加球体面之间的距离。/缩短近距离和远距离飞机之间的距离。
  3. 使用polygonOffsetPOLYGON_OFFSET_FILL呈现状态来偏移由外部球面编写的深度值。在这里阅读更多关于polygonOffset的信息
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26747759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档