Игровые движки давно уже считают скелетную анимацию и производители видюх активно продвигают физические ускорители типа PhysX (Nvidia). Это всё считается не процом... Ты ж пойми, что это реалтайм Тебе надо хотя бы в Half-Life 2 (2004 г.) погонять https://ru.wikipedia.org/wiki/Half-Life_2или посмотреть видео... https://youtu.be/Ka7ObnyGfnMсейчас игры гораздо круче...Можешь скачать этот движок https://ru.wikipedia.org/wiki/Unreal_Enginehttps://www.unrealengine.com/unreal-engine-4Он с недавнего времени бесплатен, пока ты не занимаешься коммерческой деятельностью на нём...ЦитироватьТекущая политика лицензирования: Unreal Engine 42 марта 2015 года Unreal Engine 4 стал бесплатным. Однако, разработчики игр, как и прежде, должны передавать 5 % от прибыли игры компании Epic Games, но при условии, что доходы игры составляют более $3000 за квартал.Видео https://youtu.be/JA5VlncAr74
Текущая политика лицензирования: Unreal Engine 42 марта 2015 года Unreal Engine 4 стал бесплатным. Однако, разработчики игр, как и прежде, должны передавать 5 % от прибыли игры компании Epic Games, но при условии, что доходы игры составляют более $3000 за квартал.
... по ходу для разработки под него нужно хорошее железо, а вот unity3d по сравнению с ним шустрик ...
Вообще, интересно, как производители железа берут потихоньку власть в свои руки...бестии...
Цитировать... по ходу для разработки под него нужно хорошее железо, а вот unity3d по сравнению с ним шустрик ...Да как угодно Это просто, как пример возможностей реалтаймового виза и физики... BGE не плох и B4W... смотря под какие задачи... Я последние лет 10 вообще в 3D-игры не особо... Если и играюсь нечасто, то в 2D или в 2,5D казуалки... Одна из любимых "Don't Starve"
В Маджонг как-то не доводилось... вторая знакома ) Первым делом воплощались настольные игры, типа шахмат, шашек, рэндзю... но и дофига нового появилось... люблю стратегии и квесты с нелинейным сценарием...А вообще - это моя первая домашняя видеоигра в детстве ( или аналогичная, точно уже не помню)
решилось все очень просто :
def mesh_triangulate(me): import bmesh bm = bmesh.new() bm.from_mesh(me) bmesh.ops.triangulate(bm, faces=bm.faces) bm.to_mesh(me) bm.free()
me = ob.to_mesh(scene, True, 'RENDER',calc_tessface=True) mesh_triangulate(me)
bpy.data.meshes.remove(me)
Очередная проблема... Захотел реализовать код предоставленный LanuHum выше. Объявил функцию и попробовал ее использовать. Указывает в место, куда я ее вставляю и пишет "name mesh_triangulate is not defined" : я понимаю что он указывает мне что я не определил ее но тем не менее она определена строкой выше. Если верить всем статьям которые я прочитал про питон, синтаксис правильный. Подскажите, в чем беда?
Извините, не подумал вот :
import bmeshdef mesh_triangulate(me): bm = bmesh.new() bm.from_mesh(me) bmesh.ops.triangulate(bm, faces=bm.faces) bm.to_mesh(me) bm.free() class KfoExport(bpy.types.Operator):
Спасибо sungreen, все работает!
File = open(self.filepath + ".kfo", 'wb') meshesCout = len(bpy.data.meshes)# тут я узнаю сколько у меня мэшей File.write(np.int32(meshesCout)) # сохраняю количество мэшей for ob in bpy.data.objects: if ob.type == 'MESH': mesh = ob.to_mesh(scene, True, 'RENDER',calc_tessface=False) mesh_triangulate(mesh) File.write(np.int32(len(mesh.vertices))) for vert in mesh.vertices: File.write(np.float32(vert.co.x)) # Х кордината вертекса File.write(np.float32(vert.co.y)) # Y кордината вертекса File.write(np.float32(vert.co.z)) # Z кордината вертекса File.write(np.float32(0)) # значение падинг для уравнения в передачи вшейдер File.write(np.float32(0)) # X кордината текстуры File.write(np.float32(0)) # Y кордината текстуры File.write(np.float32(0)) # X кордината нормали File.write(np.float32(0)) # Y кордината нормали File.write(np.float32(0)) # Z кордината нормали File.write(np.float32(0)) # X кордината тангента File.write(np.float32(0)) # Y кордината тангента File.write(np.float32(0)) # Z кордината тангента size = len(mesh.polygons) * 3 File.write(np.int32(size)) for face in mesh.polygons: File.write(np.int32(face.vertices[2])) File.write(np.int32(face.vertices[1])) File.write(np.int32(face.vertices[0])) bpy.data.meshes.remove(mesh) File.close()