Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.15;
Скачать: CL | DM;

Вниз

Zero3D   Найти похожие ветки 

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

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


 
@!!ex ©   (2007-09-03 16:42) [1]

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

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

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


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


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

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


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

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


 
@!!ex ©   (2007-09-03 18:10) [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;


 
Pa5ha ©   (2007-09-29 03:19) [4]

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

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


 
homm ©   (2007-09-29 08:47) [5]

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

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



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

Текущий архив: 2012.01.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.008 c
2-1318095947
Pcrepair
2011-10-08 21:45
2012.01.15
Ctrl+A и Ctrl+C в компоненте TWebBrowser


2-1317796120
Laguna
2011-10-05 10:28
2012.01.15
Обработка ошибок в открывающейся форме


6-1249385626
Polkin
2009-08-04 15:33
2012.01.15
проблема с ISA-прокси


15-1315577144
bss
2011-09-09 18:05
2012.01.15
TOleContainer, Excel - недоступно меню "Файл" и пр.


2-1317892848
ford
2011-10-06 13:20
2012.01.15
findfirst не ищет в temp пользователя win7