сделать вырезку надгробия в виде куба (Swift - SceneKit)

Я использую SceneKit со Swift. У меня есть куб (SCNBox) и текст (SCNText). Я бы хотел, чтобы текст был вставлен в куб, почти как надгробие. Любые идеи о том, как лучше всего это реализовать? Я мог бы использовать карту нормалей, но я хотел бы сохранить память и текст, чтобы он был динамичным.


person quemeful    schedule 12.08.2014    source источник


Ответы (2)


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

Сначала создайте изображение с нужным текстом. Вы можете сделать это с помощью UIKit и CoreGraphics, или CoreImage, или даже SpriteKit. Как бы вы ни создавали изображение, в конечном итоге вы захотите поместить его в файл SKTexture. Затем вы можете вызвать textureByGeneratingNormalMap, чтобы получить новую текстуру путем тиснения изображения. Установите это как карту нормалей для вашего материала.

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

person rickster    schedule 13.08.2014

Вам нужна конструктивная объемная геометрия, а именно операция "разность" или "вычитание". . В SceneKit нет ничего подобного; вам нужно будет построить свой собственный, что является довольно сложной задачей. Вы можете просмотреть проекты с открытым исходным кодом, такие как OpenSCAD, чтобы узнать, как это сделать.

person Noah Witherspoon    schedule 12.08.2014