2016-01-11 3 views
3

Я рисую трехмерную форму, используя три js. Я использую MeshLambertMaterial для рисования этой фигуры, но изображение не отображается должным образом.Искажение изображения в трех словах

Как решить эту проблему? enter image description here

+2

Есть ли у вас код для отображения? Мое лучшее предположение, не видя никакого кода, - включить сглаживание: 'renderer = new THREE.WebGLRenderer ({antialiasing: true});' – ordonezalex

+0

Можно ли установить сглаживание в parallax3d libray? –

+0

@ordonezalex Теперь я думаю, что это antialias ... – Neil

ответ

7

Я полагаю, что вы испытываете только простую старую линию/сглаживание края - проблему, которая была вокруг нас с конца 1970-х годов. Артефакт по прозвищу «jaggies». WebGLRenderer от Three.js должен помочь с этим, когда вы устанавливаете antialias: true, но если он абсолютно не будет работать в Chrome, единственным решением будет сделать подпиксельную визуализацию. Добавление следующей строки облегчает задачу, но с очевидной стоимостью исполнения:

renderer.setPixelRatio(2.0); 

Вот JSFiddle: https://jsfiddle.net/jtgvzsbo/

выше устанавливает визуализатор для визуализации в два раза больше пикселей, разрешение экрана устройства. Вы должны быть тем, кто выбирает качество линии или частоту кадров. Это постоянный балансирующий акт. Если пользователь не будет видеть этот точный угол куба все время, то я не буду беспокоиться о jaggies и идти для гладкой частоты кадров. Если они будут постоянно смотреть на этот слегка повернутый куб и останутся перед ним (может быть, он служит постоянным фоном?), То, возможно, выберете визуальное качество. Надеюсь это поможет!

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