Прозрачность модели Collada не загружается в three.js

У меня такая же проблема, как и в этом сообщении, с использованием той же модели , также загружается загрузчиком Collada.

Окна машины не отображаются прозрачными в three.js. Вы не можете видеть сквозь них.

Покопавшись в структурах данных объекта three.js, похоже, что для материала окна установлено значение opacity = 1 и transparent = false.

Я пробовал как с выпуском, так и с версией three.js для разработчиков, как рекомендовано в упомянутом выше сообщении, но безуспешно.

Я также попытался вручную установить непрозрачность на 0,3 и прозрачность на true в материальном объекте (в отладчике), и появилась прозрачность! (хотя и с некоторым мерцанием).

Есть идеи, что не так? Это проблема с загрузчиком Collada?

ОБНОВЛЕНИЕ: такая же проблема на гораздо более простой модели:

снимок экрана с проблемой.

ссылка на модель SketchUp

Спасибо

Мартин


person Martin Gorner    schedule 23.08.2012    source источник
comment
Можете поделиться проблемной моделью?   -  person mrdoob    schedule 23.08.2012
comment
Перейдите по ссылке в начале поста, связанный пост ссылается на модель. Я также попытаюсь создать более простую модель, потому что эта прозрачность кажется довольно последовательной в Sketchup. Спасибо.   -  person Martin Gorner    schedule 27.08.2012
comment
Обновлен вопрос с помощью гораздо более простой модели (куб внутри прозрачного куба)   -  person Martin Gorner    schedule 27.08.2012


Ответы (2)


Я просто попробовал это, и у меня это работает. Я взял модель из open3dhub и импортировал ее в ThreeFab, а затем экспортировал его в jsfiddle (исходный код). Я все еще вижу мерцание (это отдельная проблема). Это на сайте three.js от мастера.

введите описание изображения здесь

person jterrace    schedule 23.08.2012
comment
И загрузчик Collada от мастера тоже наверное? - person Martin Gorner; 27.08.2012
comment
Не могли бы вы попробовать модель SketchUp, на которую я ссылался выше (куб в прозрачном кубе). Я начинаю верить, что экспорт из SketchUp в Collada делает что-то странное. В файле Collada есть это для прозрачного материала: '‹transparent opaque = RGB_ZERO› ‹color› 0.6980392 0.6980392 0.6980392 0.6980392 ‹/color› ‹/transparent› ‹transparency› ‹float› 1.0000000 ‹/float› ‹/transparency›' - person Martin Gorner; 28.08.2012
comment
Вроде все. Если я установлю ‹transparency› ‹float› 0.3 ‹/float› ‹/transparency› в файле collada, я увижу то, что ожидаю, в three.js (прозрачный куб). @mrdoob Значит, либо SketchUp не сохраняет прозрачность материала, как должен, либо синтаксический анализатор Collada не импортирует ее должным образом. Я не специалист по Collada, поэтому не знаю, является ли ‹transparent› ‹color› 0.69 0.69 0.69 0.69 ‹/color› ‹/transparent› ‹transparency› ‹float› 1.0000000 ‹/float› ‹/transparency› - хороший способ говоря, я хочу прозрачный куб. Не похоже, чтобы он был самым простым :-) - person Martin Gorner; 28.08.2012

Я до сих пор не знаю, является ли это ошибкой ColladaLoader, проблемой SketchUp или причудливой особенностью спецификации Collada, но я нашел достаточно простой обходной путь:

Отредактируйте файл Collada вручную, найдите тег и вручную установите для него значение 0,3 или любое другое значение вместо 1.

Не идеально, но работоспособно.

person Martin Gorner    schedule 31.08.2012