LINUX.ORG.RU

в blender отобразитть поверхность из файла


0

2

Требуется нарисовать несколько поверхностей (замкнутых и разомкнутых). Поверхности состоят из сегментов, каждый из которых определяется координатами вершин. Координаты вершин храняться в текстовых файлах. Это выглядит так:

$ cat surf1.txt
0.9160946164 2.2521700679 -0.0224572201
0.8784731664 2.2200436194 -0.3629388560
0.5246325267 2.3009418508 -0.3637445659
0.9160946164 2.2521700679 -0.0224572201

0.9160946164 2.2521700679 -0.0224572201
0.5246325267 2.3009418508 -0.3637445659
0.5497637301 2.3476743622 -0.0395248911
0.9160946164 2.2521700679 -0.0224572201

...

Вопросы:

1. Возможно ли в blender загрузить эти данные и отобразить

2. Наоборот, если я нарисую в blender поверхность могу ли я извлечь координаты сегментов в вышеприведенном формате.

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

у блендера есть встроенный питончик, на нем все это очень быстро можно написать (загрузка-выгрузка своего формата...)

trashymichael ★★★
()
Ответ на: комментарий от Reset

а сегменты как определяются?

первые четыре строчки --- первый сегмент (может быть четырехугольной площадкой или треугольной, если две точки совпадают)

вторые четыре строчки --- второй сегмент

и так далее

 
$ cat surf1.txt 
0.9160946164 2.2521700679 -0.0224572201 
0.8784731664 2.2200436194 -0.3629388560 
0.5246325267 2.3009418508 -0.3637445659 
0.9160946164 2.2521700679 -0.0224572201

0.9160946164 2.2521700679 -0.0224572201 
0.5246325267 2.3009418508 -0.3637445659 
0.5497637301 2.3476743622 -0.0395248911 
0.9160946164 2.2521700679 -0.0224572201

... 
math-beginer
() автор топика
Ответ на: комментарий от math-beginer

Нестандартный формат, думаю, что не понимает.

Reset ★★★★★
()
Ответ на: комментарий от trashymichael

А не подскажите как зачитать текстовый файл. Нашел пример http://blender3d.org.ua/tutorial/371.html и вот эта часть примера вроде работает:

$ cat testb.py 
import Blender, math
from Blender import Camera, Object, Scene, Lamp, NMesh, Material

# Definition of vertices
list_of_vertices=[
[-1.5,-1,-0.2], # vertex 0
[-1,+1,-1], # vertex 1
[+1,+1,-1], # vertex 2
[+1,-1,-1], # vertex 3
[-1,-1,+1], # vertex 4
[-1,+1,+1], # vertex 5
[+1,+1,+1], # vertex 6
[+1,-1,+1] # vertex 7
]

# Definition of faces
list_of_faces=[
[0,1,2,3], # face 0
[4,5,6,7], # face 1
[0,4,7,3], # face 2
[1,2,6,5], # face 3
[0,1,5,4], # face 4
[3,7,6,2] # face 5
]


# Definition of a cube
CubeMeshData=NMesh.GetRaw()

for component in list_of_vertices:
	vertex=NMesh.Vert(component[0],component[1],component[2])
	CubeMeshData.verts.append(vertex)

for face_current in list_of_faces:
	face=NMesh.Face()
	for number_vertex in face_current:
		face.append(CubeMeshData.verts[number_vertex])
	CubeMeshData.faces.append(face)

NMesh.PutRaw(CubeMeshData,'Cube',1)

math-beginer
() автор топика
Ответ на: комментарий от math-beginer

Дык смотри в сорцы готовых плагинов. Я б сам посмотрел, да щас некогда.

Sergey_MSU
()
Ответ на: комментарий от math-beginer

я не подскажу но когда-то я писал импортеры-экспортеры из похожих форматов (без списка вершин, тупо точками) и все было как 2х2 по примерам (см. апи)

trashymichael ★★★
()
Ответ на: комментарий от trashymichael

Спсибо за ответы, в общем то с API и примерами на Питон разбираюсь (жаль что без блендера пакет Blender в питон-скрипте не подключается :-) ). А с построением поверхности совсем по простому разобрался так: данные сбросил OBJ (моя спп программа их вычисляет).

скажите, вообще, реально ли, и где рыть (первый опыт работы с блендером и «поиском нужных кнопок в интерфейсе»):

1. автоматом (т.е. самому не писать программу а вызвать какуюнить функцию) построить сечение поверхностей, загруженный на сцену --- вместо поверхностей в 3Д получить линии на плоскости (не вид сбоку или сверху ...)

2. если поверхность представлена грубой сеткой (с большими сегментами (площадками)), то возвратить ее представление в мелкой сетке (с маленькими площадками), например в том же OBJ (или пойфиг в чем, лишь бы были числа-координаты)

math-beginer
() автор топика

Посмотри как сделано в RAW format import/export (может быть отключен по-умолчанию). Каждая строка - 9 флоатов (треугольник).

CEMEH
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.