Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Вниз

GLScene - GLPortal и GLFreeForm   Найти похожие ветки 

 
Conferno   (2005-11-13 22:03) [0]

Привет мастерам!
Вот, кое-что вычитал из GLSceneFaq"a про порталы.
Пробовал так, как написано, но желаемого результата не получил....
Может кто разберется в коде, портал - вещь незаменимая для модели
уровня(например, закрытого помещения).
Вот то, что я вычитал:

Essentially level rendering, there is a small demo on it that shows a (very)
small subset of what it can do. Lacks decent importers/level editors.

Eric
/////////////////
Can I use portals to render big scenes loaded from files? Loading from
file doesn"t work because the loaders don"t create the Sectors and Polys
 instead of MeshObjects and FaceGroups. So I tought a convertion
function could do the trick. What I got is this:

procedure convert(mesh: TGLBaseMesh; portal: TGLPortal);
var
i, j: integer;
sector: TSectorMeshObject;
mo: TMeshObject;
poly: TFGPolygon;
fc: TFaceGroup;

begin
     for i:= 0 to mesh.MeshObjects.Count -1 do begin
          mo:= mesh.MeshObjects[i];
          sector:= TSectorMeshObject.CreateOwned(Portal.MeshObjects);
          sector.Vertices.assign(mo.Vertices);
          sector.Normals.Assign(mo.Normals);
          sector.Visible:= mo.Visible;
          sector.TexCoords.Assign(mo.TexCoords);
          sector.LighmapTexCoords.Assign(mo.LighmapTexCoords);

          sector.Colors.Assign(mo.Colors);
          sector.Mode:= mo.Mode;
          sector.RenderingOptions:= mo.RenderingOptions;

          //sector.FaceGroups.Assign(mo.FaceGroups);
          for j:= 0 to mo.FaceGroups.Count -1 do begin
               poly:= TFGPolygon.CreateOwned(sector.FaceGroups);
               fc:= mo.FaceGroups[j];
               poly.MaterialName:= fc.MaterialName;
               if fc.InheritsFrom(TFGVertexIndexList) then with

TFGVertexIndexList(fc) do begin
                    poly.VertexIndices.Assign(VertexIndices);
                    poly.Mode:= Mode;
               end;
               if fc.InheritsFrom(TFGVertexNormalTexIndexList) then
with TFGVertexNormalTexIndexList(fc) do begin
                    poly.NormalIndices.Assign(NormalIndices);
                    poly.TexCoordIndices.Assign(TexCoordIndices);
               end;
          end;
     end;
end;

Works all right, I load a mesh file on a freeForm and then convert this
to sectors and polies to the portal object. However, the portal doesn"t
do the culling. The problem is at TPortalMeshObjectList.BuildList; the
camera position (if
Items[i].PointInObject(PAffineVector(@mrci.cameraPosition)^)) never
seems to be inside any sector. I"m thinking this is a coordinate
convertion problem, but so far I haven"t been able to correct is.

У кого какие идеи?


 
Da Stranger ©   (2005-11-14 14:07) [1]

есть демка GLScene\Demos\Meshes\Portal\
+ на http://caperaven.co.za/ раньше лежала очень старая демка portal, но я с ней не разбирался.


 
Conferno   (2005-11-14 23:41) [2]


> есть демка GLScene\Demos\Meshes\Portal\

Ну,  это я есессно знаю.......


> + на http://caperaven.co.za/ раньше лежала очень старая
> демка portal, но я с ней не разбирался.

Я что-то искал-искал на сайте, но так и не нашел.... :(
Не подскажешь где именно?
Или, если ты ее скачивал, не кинешь на мыло?
Порталы - вещь интересная и нужная...


 
Da Stranger ©   (2005-11-15 21:56) [3]

Пример отправил


 
Conferno   (2005-11-15 22:19) [4]

Большое спасибо! Посмотрю...  :)


 
Conferno   (2005-11-17 18:18) [5]

Прикольно работает....
Только не пойму как использовать и увеличивать Quad"ы...



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
15-1150318363
Petr V. Abramov
2006-06-15 00:52
2006.07.16
Сколько стоит доехать до Тимково на местном таксисте?


6-1141971797
WondeRu
2006-03-10 09:23
2006.07.16
TServerSocket внутри COM-сервера.


1-1149258914
Святослав
2006-06-02 18:35
2006.07.16
Как подключить readkey для консольного приложения?


4-1144406187
leonidus
2006-04-07 14:36
2006.07.16
Передача в dll строки widestring


15-1150445972
worldmen
2006-06-16 12:19
2006.07.16
Библиотека bordbk70.dll.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский