Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Zero3D [Delphi]


ПисательПлоскихИгр ©   (2007-09-03 16:31:00) 

Привет Мастерам!
Можно ли при создании трёхмерной игры написать отображение трёхмерных объектов на плоскость экрана с н0ля?
Без Direct...; без GLScene; без OpenGL; без ...?
И, если можно, то как долго надо писать и как медленно написаное будет работать?
Спасибо за внимание.


homm   (2007-09-29 08:47:00) [1]

> [0] ПисательПлоскихИгр   (03.09.07 16:31)
> отображение трёхмерных объектов на плоскость экрана с н0ля

Что за нОль, и как на Ноле отображаются трехмерные объекты?


Pa5ha   (2007-09-29 03:19:00) [2]

Давно не заглядывал, поэтому откапываю сттарую тему )

Я в школе писал софтверный рендер на канве. Рисовалось сносно, считалось освещение. Но когда пришло время делать з-буфер и текстурирование я плюнул на это дело т.к. не смог. Мб где есть простые реализации этих штук на чистом паскале без всяких извратов?


@!!ex   (2007-09-03 18:10:00) [3]

> Это надобно для ПРОФЕССИОНАЛЬНОГО ОЩЩУЩЕНИЯ.

:))


> Какой же СТРРАШНЫЙ уровень профессионализма надо иметь для
> такой скарости?

Там всего 324 строки. Я напомню, там только простейшие операции. вот так выглядит классик это реализующий:
TSoftware3DRender = object
 public
  Constructor Create(focalLength:integer);
  Destructor  Destroy;

  Procedure   SetFocalLength(size:integer);
  Procedure   SetCenter(cx,cy:integer);

  Procedure   LoadIdenty;
  Procedure   PushMatrix;
  Procedure   PopMatrix;

  Procedure   RotateX(degree:real);
  Procedure   RotateY(degree:real);
  Procedure   RotateZ(degree:real);

  Procedure   Translate(x,y,z:integer);

  Procedure   Scale(x,y,z:real);

  Procedure   transform(var m1,m2:TMatrix4x4);
  Procedure   transformVector(var v:TVector4; m:TMatrix4x4);

  Procedure   Line3D(x1,y1,z1,x2,y2,z2:integer);
  Procedure   Line2D(x1,y1,x2,y2:integer);
  Procedure   Polygon(P1,P2,P2:TVector4);
 private
  fLength:integer;
  transformMatrix:TMatrix4x4;
  tempMatrix:TMatrix4x4;

  MatrixStack:array[0..49] of TMatrix4x4;
  CurrentStack:integer;

  CenterX,CenterY:integer;
 end;


ПисательПлоскихИгр   (2007-09-03 17:08:00) [4]


> зачем в век 3Д ускорителей писать софтверный рендер

Это надобно для ПРОФЕССИОНАЛЬНОГО ОЩЩУЩЕНИЯ.


> за один вечер

Какой же СТРРАШНЫЙ уровень профессионализма надо иметь для такой скарости?


@!!ex   (2007-09-03 16:42:00) [5]

В свое время в качестве курсовой написал это на Borland Pascal 7.1, поддержка только простейших операций, за один вечер.
+ текстринг еще пол дня писать.
Плюс освещение день.
Блендинг, Z-Buffer еще пару дней.
Я думаю за неделю можно написать сносный софтверный рендер.

Насчет скорости... А как на первом пне работал анрыл? С клевой графой на то время.. Резво работал, скажу я вам! А ведь чистая софтвера.

вопрос только зачем в век 3Д ускорителей писать софтверный рендер?


Наверх

Титульная страница Поиск, карта сайта Написать письмо