Можем ли мы использовать 3D-объекты, созданные AutoCAD в Unity3D? [Дубликат]

Ваш цикл for возвращает сообщение Unit, следовательно, сообщение об ошибке. Вы можете использовать for-yield для возврата значений, но поскольку Seq должен быть updated последовательно, простой foldLeft будет работать лучше:

import org.apache.spark.sql.functions._

val df = Seq(
  (Seq(101L, 102L), Seq("1", "2"), Seq(11, 12)),
  (Seq(201L, 202L, 203L), Seq("2", "3"), Seq(21, 22, 23))
).toDF("C1", "C2", "C3")
// +---------------+------+------------+
// |C1             |C2    |C3          |
// +---------------+------+------------+
// |[101, 102]     |[1, 2]|[11, 12]    |
// |[201, 202, 203]|[2, 3]|[21, 22, 23]|
// +---------------+------+------------+

def updateC3 = udf( (c1: Seq[Long], c2: Seq[String], c3: Seq[Int]) =>
  c2.foldLeft( c3 ){ (acc, i) =>
    val idx = i.toInt - 1
    acc.updated(idx, c1(idx).toInt)
  }
)

df.withColumn("C3", updateC3($"C1", $"C2", $"C3")).show(false)
// +---------------+------+--------------+
// |C1             |C2    |C3            |
// +---------------+------+--------------+
// |[101, 102]     |[1, 2]|[101, 102]    |
// |[201, 202, 203]|[2, 3]|[21, 202, 203]|
// +---------------+------+--------------+
7
задан Doicare 27 May 2016 в 11:58
поделиться

2 ответа

Unity поддерживает файлы .FBX, .dae (Collada), .3DS, .dxf и .obj. Если ваш Autocad может экспортировать любой из них, тогда ответ будет да. Это возможно, но прочитано ниже.

Объекты, созданные в Autocad, SolidWorks или другом подобном программном обеспечении, не должны быть импортированы в Unity напрямую любыми способами. Это слишком тяжело для Единства. Если вы хотите использовать свои модели из любого из этих программ, экспортируйте их в программное обеспечение, такое как Maya или Blender, затем очистите модели. Уменьшите количество полисов перед импортом в Unity.

Обратите внимание, что для очистки моделей потребуется время. Вы должны потратить это время на создание новых моделей в Maya или Blender. Если ваша цель состоит в том, чтобы сделать игру, вам необходимо изучить майю или блендер. Для этого не используется Autocad. Поскольку вы уже используете Autocad, я предлагаю вам использовать Maya, так как пользовательские интерфейсы теперь сделаны похожими.

EDIT:

Я вижу ответ ниже, предлагающий полностью использовать модели Autocad в Unity или моделировать объекты в Autocad. Речь идет не только о создании моделей. Вы должны сделать некоторые работы над моделями, чтобы они выглядели хорошо и даже правильно работали с движком рендеринга Unity. Вот несколько причин не использовать Autocad для моделирования ваших игровых объектов:

  • 1.UV mapping / unwrapping.

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

  • 2.Texturing model.

Опять же, это делается внутри программ, таких как Maya и Blender not Autocad.

  • 3. Захватывающие текстуры / Карта

Вам нужно испечь карты в большинстве случаев при работе с подробными подробными моделями. При создании материалов из V-ray или любого рендерера в Maya со сложными материалами вам нужно испечь окончательный результат в виде типов карт, таких как цвет, нормальный, альфа .... Это также относится к светлой выпечке.

  • 4.Map Transfer

Сначала вы моделируете high poly, а затем переносите карту на low poly. Вы не можете сделать это с помощью Autocad. Это очень важно, так как это уменьшает количество полисов в вашей игре.


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

Используйте правильный инструмент для задания. Используйте Autocad для engineering и Maya или Blender для игр , фильмов и art . Это так просто.

9
ответ дан Programmer 23 August 2018 в 23:30
поделиться

Для экспорта из AutoCad используйте формат OBJ или FBX. Страница Unity, «какие файлы можно импортировать», вводит в заблуждение, потому что экспортируемые форматы файлов различаются с каждым новым годом, а новые версии экспортирующих программ часто не совместимы с Unity. К сожалению, разработчикам Unity требуется несколько лет, чтобы ускорить процесс импорта.

Что касается оптимизации ваших моделей, «очистка их» в Maya - это шутка, потому что Maya также будет экспортировать «тяжелые», в зависимости от формата, который вы используете. Существует приоритет для очистки модели, но продукты AutoCad являются лучшими в отрасли, и если вы очищаете их в CAD-программе, а затем экспортируете в OBJ или FBX, все должно быть хорошо. Maya также является продуктом AutoCad, я просто говорю, что вам не нужно жонглировать файлом в разных программах. Если вы используете формат экспорта OBJ или FBX, и если ваш файл в основном является моделью CG, то он будет работать нормально, как обычно, из CAD-программы в Unity. В программах CAD есть утилиты для очистки моделей, а также такие программы, как Sketchup, DAZ3D и другие. Вам не нужно триангулировать лица, и обычно OBJ будет работать отлично.

. Ваш лучший вариант для импорта в Unity - использовать OBJ, если возможно, из любой исходной программы. Большинство моделей поддержат это, если у вас нет анимации или «костей». Если вы экспортируете в OBJ и выбираете опцию NOT triangulate всех лиц, и DO включают текстуры, вы должны быть в порядке. Если ваша модель включает анимацию, тогда вы должны использовать формат FBX, который будет иметь значительно более высокую стоимость файла.

Кроме того, он лучше работает и перетаскивает .obj-файл, файл .mtl и текстуры папке в папке Unity Asset, где вы ее хотите (лучше, чем пытаться использовать функцию Unity для импортирующего актива).

Следует иметь в виду, что многие форматы, которые Unity заявляет для импорта на своих «каких файлах я могу import "недействительны в зависимости от версии программы экспорта. Например, файлы DXF должны быть более ранней, а не последней. Такие программы, как Sketchup и .skp, будут импортированы только в Unity, если вы используете более раннюю версию еще в 2013 году, как и Unity 5.6.0f3.

Обычно, если вы знаете об этих проблемах, и вы готовы попробовать несколько методов экспорта / импорта модели CG, вы найдете успех. Очевидно, игровые разработчики продолжают использовать Unity, потому что они оценивают двигатель достаточно, чтобы терпеть эти недостатки.

1
ответ дан Little BIt 23 August 2018 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: