forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   терайн глючный (http://forum.boolean.name/showthread.php?t=1551)

Timon 23.09.2006 22:31

терайн глючный
 
значить есть терайн и всё нормально пока не пойдёт камера, как только она пойдёт терайн начинает непонятно менять форму, делаю детайл повыше-естно фпс падает>O< .
как отминить эти изгибания терайна без потери фпс(ну хотябы с небольшой потерей:wallbash: )

jimon 23.09.2006 22:33

Re: терайн глючный
 
ты о чем ?

Diplomat 23.09.2006 22:38

Re: терайн глючный
 
2 Timon : Это не баг, это фича. А вообще, лучше юзать террайны, сгенерированные повертексно, или смоделенные в Мах-е: можно повысить качество изображения, производительность и стабильность.

Timon 24.09.2006 16:07

Re: терайн глючный
 
to Jimon эт я о том что при приближении к терайну или отдалении от него его вертексы изменяют свою позицию(ну типа NOISE из 3ДС МАХ) а если ещё и поставить morph на true то ваще "прикольно" получется
TerrainDetail terr,5000,True:wallbash: :wallbash: :wallbash:

а если сделать в МАХе то помоему не получиться деформировать этот террайн, ну типа как в castle.bb

jimon 24.09.2006 16:25

Re: терайн глючный
 
они и должны изменять свою позицию :) dinamic LOD называется вроде :)

Diplomat 24.09.2006 16:37

Re: терайн глючный
 
Цитата:

dinamic LOD называется вроде
ІЫгы, dynamic... :))

Цитата:

а если сделать в МАХе то помоему не получиться деформировать этот террайн, ну типа как в castle.bb
А если сделать повертексно, то очень-на лЁхко получится. Впрочем, и в случае с Мах-ом получится, только нужно будет перед запуском в цикл провести анализ координат каждого вертекса.

Когда-то я создавал соответствующую тему. А РАХ ёё развивал. Называется "Веселые секреты". Размещена в ФАК-е.

Исчи, ведь поесг- ёто сила,
И знаний развернутся крыла,
Влекут нас к дальним берегам.
Террайн наградой станет нам...
:-)

Timon 24.09.2006 17:27

Re: терайн глючный
 
thanks i'm going to find it!!!

Timon 26.09.2006 20:47

Re: терайн глючный
 
в факе она не работает.
а можна в блитзе из террайна сделать меш, и отменится ли прои этом DynamicLOD???

HolyDel 27.09.2006 01:16

Re: терайн глючный
 
все можно, но FPS потеряеш больше чем при самой большой детализации террайна.

Diplomat 27.09.2006 01:55

Re: терайн глючный
 
Цитата:

FPS потеряеш больше чем при самой большой детализации террайна.
"Пони? Обоснуйте..."(с)

MiXaeL 27.09.2006 22:54

Re: терайн глючный
 
Вложений: 2
На самом деле меш, как я понимаю, сделать нельзя (на этом и основан Dynamic LOD - типа отображение террайна с меньшим кол-вом полигонов), но можно попробовать что - то вроде этого (за качество не отвечаю - писал на скорую руку):

Timon 28.09.2006 11:08

Re: терайн глючный
 
спасиб, буду юзать!

Diplomat 28.09.2006 12:57

Re: терайн глючный
 
2 Michael: Может я чего-нибудь не понимаю, но в твоем примере террайн является типичнейшим мешем (который "сделать нельзя"?), созданым повертексно. А пример- хороший. По сути соответствует тому коду, который приводил РАХ в вышеуказанной мною теме. Только раскраска вертексов не предусмотрена. :-)

А для создания таким образом больших террайнов существует несколько давно изобретенных и проверенных метода:

а). Разделять большой террайн на квадраты из нескольких маленьких: полигоны не зашкалят за критические 65000, а при передвижении камеры, невидимые террайны-квадраты будут отсекаться Блицем.

б). Поместить карту высот в массив и при передвижении "переставлять" удаленные террайны-квадраты туда, куда движется камера и корректировать их в соответствии с картой высот. Достаточно 9-ти штук: 1- над которым камера, 8- вокруг.

Усё.

HolyDel 29.09.2006 01:52

Re: терайн глючный
 
Так например можно получить mesh из террайна

Function MakeMeshFromTerrain(t)
size=TerrainSize(t)
m=CreateMesh()
s=CreateSurface(m)
For j=0 To size-1
For i=0 To size-1
v0=AddVertex(s,i,TerrainHeight(t,i,j),j,0,0)
v1=AddVertex(s,i+1,TerrainHeight(t,i+1,j),j,1,0)
v2=AddVertex(s,i,TerrainHeight(t,i,j+1),j+1,0,1)
AddTriangle(s,v0,v1,v2)
v0=AddVertex(s,i+1,TerrainHeight(t,i+1,j),j,1,0)
v1=AddVertex(s,i+1,TerrainHeight(t,i+1,j+1),j+1,1, 1)
v2=AddVertex(s,i,TerrainHeight(t,i,j+1),j+1,0,1)
AddTriangle(s,v0,v1,v2)
Next
Next
UpdateNormals m
FlipMesh m
Return m
End Function

jimon 29.09.2006 10:25

Re: терайн глючный
 
тогда такое надо делать только при максимальной детализации терайна ...


Часовой пояс GMT +4, время: 09:45.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot