2017-01-11 13 views
0

В настоящее время я работаю над проектом с использованием ThreeJs.Трехмерная 3D-модель на основе трехугольников в 3DJS (как в HelloRacer.com)

Прямо сейчас я использую wavefront-obj для представления своих 3D-моделей, но я бы хотел использовать что-то вроде -IGES или -STEP. Эти форматы не поддерживаются компанией ThreeJS, но я видел http://helloracer.com/webgl/, и для меня из-за короткого времени загрузки кажется, что эта модель не основана на многоугольниках, как вы можете видеть на гладкой поверхности. Модель, похоже, является .js, так что это формат ThreeJS-JSON?

Является ли такая модель созданной путем загрузки IGES/STEP, например, Clara.io и экспортировать ее в три JSON? У меня нет возможности проверить его сам, потому что сейчас у меня нет модели IGES/STEP, но я бы позволил кому-то создать ее.

С волновым фронтом я не могу создать такие гладкие поверхности, не получая огромное время загрузки и медленный рендер.

picture of not smooth surface

как вы можете видеть, поверхность и молния не так гладко, как на публикуемый примере.

+0

Вы можете опубликовать снимок экрана с изображениями? –

+0

Просто отредактировал мое сообщение, чтобы показать вам изображение, здесь вы можете увидеть полигоны, которые используются моделью, я могу сгладить объект, но количество многоугольников будет быстро увеличиваться, и это сделает все очень медленным. Потому что я хочу отобразить некоторый материал лакера, мне нужен очень гладкий объект. (есть также прозрачность в материале) – Dubbox

ответ

1

Поверхности в демо, которые вы связали, не являются гладкими, они все еще многоугольны.

Case'n'point

Я думаю, гладкая затенение, что вы ищете. Дело в том, что обычно модель заштрихована на основе ее нормалей. Таким образом, какие нормали мы устанавливаем в вершины модели, имеет решающее значение для того, что мы получим на экране. Основываясь на вашем описании, ваши модели имеют отдельный нормальный для каждого треугольника. Как и на этом изображении, каждая вершина каждого треугольника имеет ту же самую нормаль, что и сам треугольник. Таким образом, когда мы интерполируем эти нормали по треугольнику, мы получаем одно и то же значение для каждой точки треугольника. Расчеты затенения дают равномерное освещение, и треугольник оказывается плоским на изображении.

Face normals

Для достижения эффекта гладкой поверхности, нам нужны другие значения нормалей вершин, как и те, на этом изображении:

Vertex normals

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

Итак, чтобы повторить, модели, которые вы пытаетесь визуализировать, должны иметь «сглаженные» нормали вершин, чтобы они выглядели гладкими на экране.

UPD. Судя по вашему снимку экрана, ваша модель использует преломляющий материал. Эта же идея относится к расчетам рефракции, так как они также основаны на нормальных значениях.

+0

Большое спасибо, но как мне изменить свои нормали в Blender на эти интерполированные нормали? – Dubbox

+0

А я просто понял это удачей!: D Собираюсь проверить его прямо сейчас – Dubbox

+0

Хорошо, я просто понял, как изменить отображение вершинных нормалей, но как их использовать в ThreeJS или как я устанавливаю нормали к нормалям вершин при экспорте? – Dubbox

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

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