|
3D-программирование Вопросы, касающиеся программирования 3D мира |
10.12.2010, 13:00
|
#1
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Координаты вертексов при програмном копировании меша
Нужно правильно расставить UV-координаты и нормали. Начудил код копирования меша, а координаты вертексов и нормали расставляются верно, но не везде. Полюбому уже тема такая созданна, если кто то знает о ней, дайте ссыль.
|
(Offline)
|
|
10.12.2010, 13:07
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Получай UV координаты и нормали встроенными средствами и переноси их в новый меш.
__________________
|
(Offline)
|
|
10.12.2010, 14:20
|
#3
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Спасибо конечно, но ты мне ничего нового не сообщил. Понятное дело я беру uv из вертыкса который копирую и добавляю в новый. Но если ты картинку смотрел, там искаженные uv.
|
(Offline)
|
|
10.12.2010, 14:56
|
#4
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Сообщение от CRASHER
Но если ты картинку смотрел, там искаженные uv.
|
Ну так не искажай их, и не путай местами!
__________________
|
(Offline)
|
|
Эти 4 пользователя(ей) сказали Спасибо SBJoker за это полезное сообщение:
|
|
11.12.2010, 00:05
|
#5
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Хорошо, поставлю вопрос по другому. Как правильно скопировать мешь учитывая нормали и UV координаты?
|
(Offline)
|
|
11.12.2010, 01:47
|
#6
|
Гигант индустрии
Регистрация: 14.12.2005
Сообщений: 2,785
Написано 1,183 полезных сообщений (для 4,437 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
;-------------------------------------------------
msurfs=CountSurfaces(entity)
For is=1 To msurfs
surf=GetSurface(entity,is) ; surf object
;update the virtual mesh
e\numverts[is]=CountVertices(surf) ;count vertexs surf
e\numtris[is]=CountTriangles(surf)
br=GetSurfaceBrush(surf)
layer_amtsurf=FindSurface(layer_amt,br)
If layer_amtsurf=0
layer_amtsurf=CreateSurface(layer_amt,br) ;esli net to sozdat surface
EndIf
FreeBrush br
e\layer_amtsurf[is]=layer_amtsurf ; surf new object
e\vertindex[is]=CountVertices(layer_amtsurf) ;count vertexs surface_amt
e\trisindex[is]=CountTriangles(layer_amtsurf) ;count Triangles surface_amt
l\countVert=l\countVert+e\vertindex[is]
;add data to layer_amt + virtual mesh
For i=0 To CountVertices(surf)-1
AddVertex(layer_amtsurf,VertexX(surf,i)+e\x,VertexY(surf,i)+e\y,VertexZ(surf,i)+e\z,VertexU(surf,i),VertexV(surf,i),VertexW(surf,i))
VertexNormal layer_amtsurf,i+e\vertindex[is],VertexNX(surf,i),VertexNY(surf,i),VertexNZ(surf,i)
r#=VertexRed# (surf,i)
g#=VertexGreen# (surf,i)
b#=VertexBlue# (surf,i)
VertexColor layer_amtsurf,i+e\vertindex[is],VertexRed# (surf,i),VertexGreen# (surf,i),VertexBlue# (surf,i)
Next
For it=0 To CountTriangles(surf)-1
i2=e\vertindex[is];
AddTriangle(layer_amtsurf,TriangleVertex(surf,it,0)+i2,TriangleVertex(surf,it,1)+i2,TriangleVertex(surf,it,2)+i2)
Next
Next
Тут добавление к уже созданному мешу так что разбирайся
создай меш и убери смещения при добавлении вертекс и трианглов
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
11.12.2010, 02:30
|
#7
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Спсыбы, Разобрался таки))) Благодарю! очень полезно!!!
Последний раз редактировалось CRASHER, 11.12.2010 в 03:46.
|
(Offline)
|
|
12.12.2010, 12:43
|
#8
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Появился еще один вопорс. Я создал в новом меше новую точку, нашел наконецтаки UV для новой точки. Применил к ней эти UV. Но почему то текститса только один трианг более мение. Остальные как на фотоке в первом посте. Использовал UpdateNormals и Vertextexcoords после обновления нормалей. Как должен выглядеть процесс применения текстурных координат для новой точки?
|
(Offline)
|
|
12.12.2010, 13:18
|
#9
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
Твоя проблема в том что ты считаешь что у трианглов есть общие точки. Прикинь у нескольких трианглов одна вершина с единственным UV набором? Так ни когда ни чего не затекстуришь. Делай каждому трианглу по три своих личных вершины и будет тебе щастье.
__________________
|
(Offline)
|
|
12.12.2010, 15:02
|
#10
|
Разработчик
Регистрация: 08.03.2007
Сообщений: 530
Написано 31 полезных сообщений (для 36 пользователей)
|
Ответ: Координаты вертексов при програмном копировании меша
SBJoker, я догадывался. Подскажи как выиглядит код с добавлением вершины.
Или может знаешь где можно посмотреть?
Последний раз редактировалось CRASHER, 14.12.2010 в 04:56.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 10:19.
|