![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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Д ускорителей писать софтверный рендер?