2017-02-13 7 views
0

Я создаю галактику с Three.js, и я пытаюсь установить все в реалистичном масштабе. Поэтому значения для позиции и размера могут стать действительно большими.Границы значений WebGL/Three.js

Так что эти значения, которыми я владею, находятся в диапазоне от 0 до ~ 1 * 10^20. Однако я заметил, что значения> ~ 1 * 10^6 и < ~ 1 * 10^-5 вызывают проблемы, например visibility, raycasting и другие вещи.

Итак, существует ли ограничение, каким могут быть большие или малые значения? Или проблемы, связанные с чем-то другим, и их можно избежать, используя трюк.

+0

Может быть, [math.js] (http://mathjs.org/) поможет? –

ответ

2

обязательно посмотрите на эту example

из-за больших значений, вы должны использовать логарифмическую буфер глубины.

при инициализации видеообработки с

var renderer = new THREE.WebGLRenderer({logarithmicDepthBuffer: true }); 

ваша скрипка должна работать идеально

я не знаю о raycasting, но это не должно вызывать никаких проблем. особенно если вы делаете это по gpu, так как результат должен быть равен рендерному изображению

+0

На самом деле, давно видели этот пример, но больше не думал об этом. Большое вам спасибо, что решит массу проблем! –

 Смежные вопросы

  • Нет связанных вопросов^_^