Я хочу переопределить цвет компонента в средстве просмотра, чтобы сохранить тот же эффект рендеринга, что и другие компоненты, я хотел бы клонировать существующий материал и просто изменить цвет клона.
Я могу изменить цвет существующего материала следующим образом:
var renderProxy =
viewer.impl.getRenderProxy(
model, fragIds[0])
renderProxy.material.setHex(0xFF0000)
Это влияет на все другие компоненты в модели, которые используют этот материал, что не является желаемым результатом.
Для этогоЦель Я хотел бы клонировать материал, изменить его и повлиять на новый материал для конкретного компонента.Вызов метода material.clone () работает:
var newMat = renderProxy.material.clone()
newMat.setHex(0xFF0000)
Но новый материал потеряет все специфические свойства, из-за которых рендерер будет хорошо выглядеть.
Так что мой вопрос "Есть ли способ - легко - клонировать материал для просмотра без написания кода клонирования для каждого свойства?