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

Вниз

3D графика в Turbo Pascal 7.0   Найти похожие ветки 

 
_   (2009-10-25 13:59) [0]

Вот никогда не думал, что на Паскале вот такое можно вытворять:
http://pascal.sources.ru/graph/inertia.htm

Посмотрите демки, впечатляет.


 
Virgo_Style ©   (2009-10-25 14:03) [1]


> Вот никогда не думал, что на Паскале вот такое можно вытворять:


почему бы и нет?


 
xayam ©   (2009-10-25 14:05) [2]

ничего невозможного нет, как обычно


 
_   (2009-10-25 14:05) [3]

В те далёкие времена можно было бы неплохую 3D-игрушку состряпать ещё до 1-го 2.5D-DOOM. С хорошей графикой.


 
@!!ex ©   (2009-10-25 15:07) [4]

У меня в качестве первой курсовой в ВУЗе было 3D на паскале. пробелма то в чем? Такой же язык как и все.


 
_   (2009-10-25 15:16) [5]


> У меня в качестве первой курсовой в ВУЗе было 3D на паскале.
>  пробелма то в чем? Такой же язык как и все.


Объёмный кубик? Или что? На кого учился?


 
boa_kaa ©   (2009-10-25 15:50) [6]

О сколько нам открытий чудных
Готовят просвещенья дух
И опыт, сын ошибок трудных,
И гений, парадоксов друг,
И случай, бог изобретатель...

А.С. Пушкин


 
@!!ex ©   (2009-10-25 15:59) [7]

> [5] _   (25.10.09 15:16)

Прикладная математика и информатика.

У нас задание было сделать презентацию факультета... я выпендрился, сделал софтварный 3Д рендер. :)))
Самое сложное - сделать фрагментацию треугольника. Все остальное делается без особых проблем.


 
_   (2009-10-25 16:45) [8]


> я выпендрился, сделал софтварный 3Д рендер. :)))


Тоже на Паскале?
Я учусь на первом курсе и неплохо знаю OpenGL и основы Direct3D,
тоже повыпендриваюсь. ;)


 
@!!ex ©   (2009-10-26 06:57) [9]

> [8] _   (25.10.09 16:45)

Могу поделится сорсами, если надо.


 
_   (2009-10-26 09:34) [10]

Был бы рад, поучиться. ;)
Но с ящиком проблемы. (
Просьба где нибудь залить, учитывая что сорсы не так уж много весят.


 
brother ©   (2009-10-26 09:37) [11]

ну, а мне на мыло плз... поглядим шо за велосипед ;)


 
brother ©   (2009-10-26 09:37) [12]

те в асю)


 
_   (2009-10-26 18:37) [13]

UP


 
Virgo_Style ©   (2009-10-26 19:48) [14]

Ага. У меня все было гораздо скромнее - всего-то кубик рендерился. Правда, уголки кубика почему-то пропадали... но меня и так устраивало )


 
_   (2009-10-26 20:00) [15]

Самый интересный пример (IMV.exe), рендер головы: можно натягивать текстуру, настраивать свет, полупрозрачность, различные заливки и др.
Угарно. Гы. =)


 
Kostafey ©   (2009-10-26 20:22) [16]

Да, помню. Но много проблем было с движением объектов.
Про какие-то специализированные граф. библиотеки я не
знал (2000г). Объекты при рендериге заметно дергались,
вся картинка мерцала. Частично спасали ассемблерные
вставки, но не до конца.
Тот факт, что эта проблема так и не была до конца
решена, послужило причиной того, что я бросил писать
свою первую (хоть и не последнюю :))) игрушку. Если
бы тогда я отрыл что-то вроде OpenGL, Direct3D или
что-то подобное, не извесно чем бы сейчас занимался :(.


 
_   (2009-10-26 20:39) [17]


> 2000г


В 2000 вышла книга по OpenGL Краснова.
Если к ней ещё приплюсовать примеры Хорна, то можно было бы догнать
Quake 3 по графике. А тот вышел в 99.


 
Kostafey ©   (2009-10-26 21:03) [18]

> В 2000 вышла книга по OpenGL Краснова.

Легко вам говорить. Вот для меня в то время книжка
по TurboPascal за 60 руб. стоила целое состояние!

О! Не надо мне рассказывать про сканы в интернете.
Интернет стоил вообще заоблачные деньги, на
него ходили смотреть все вместе на несколько минут
по большим праздникам. :((


 
_   (2009-10-26 21:08) [19]


> Легко вам говорить.


М-да, фиговые были деньки...


> Интернет стоил вообще заоблачные деньги, на
> него ходили смотреть все вместе на несколько минут
> по большим праздникам.


А я кроме Dendy ничего и не видел, тогда. =)


 
Pavia ©   (2009-10-26 21:35) [20]

Да ладно врать нормальный интернет был в 2000 году. Тогда пол Москвы на халявном интернете сидело. И сейчас сидит только на другой халяве.


> > В 2000 вышла книга по OpenGL Краснова.

В 2004 вообще-то вышла.


 
_   (2009-10-26 21:47) [21]


> В 2004 вообще-то вышла.


Неееет уж, в 2000-м. по Direct3D - в 2000. ;P
http://www.delphikingdom.com/asp/book.asp?BookID=21


 
Kostafey ©   (2009-10-26 21:58) [22]

> [20] Pavia ©   (26.10.09 21:35)
> Тогда пол Москвы на халявном интернете сидело.

На планете Москва, может, тырнету и было много, а вот
с деревнями, городками и "городами" - было сложнее.
Сейчас - да. К каждой берлоге оптоволокно проведено.


 
GDI+   (2009-10-26 22:03) [23]


> _   (25.10.09 13:59)
>
> Вот никогда не думал, что на Паскале вот такое можно вытворять:
>
> http://pascal.sources.ru/graph/inertia.htm


Как курсовая/дипломная сойдёт, а так не впечатляет. Фигня.


 
_   (2009-10-27 08:39) [24]


> Как курсовая/дипломная сойдёт, а так не впечатляет. Фигня.


Пример с 3D-головой смотрел?
А говорил фигня...


 
_   (2009-10-28 10:18) [25]

@!!ex ©

Где сырцы?


 
@!!ex ©   (2009-10-28 10:34) [26]

> [25] _   (28.10.09 10:18)

Че за наезд? ]:->
Только сегодня освободился. Готовили проект к ACGI.
Сейчас допилю текстурирование и выложу.


 
_   (2009-10-28 10:53) [27]


> Че за наезд? ]:->
> Только сегодня освободился.


Я будто знал. ]:)
Ждём-с... ;)


 
@!!ex ©   (2009-10-28 12:58) [28]

http://sol-online.org/content/software3d.rar

проект делится на 5 логических частей:
SoftwareShader.pas - самый низкий уровень. реализует обработку вершин, фрагментов и тест глубины. Плюс тут определены все основные типы с которыми работает растеризатор. Если сравнивать с OpenGl - то это шейдеры

Software3DPipeline.pas - собственно растеризатор. Если сравнивать с OpenGl - то это собственно растеризатор на видеокарте

Transforms3D.pas - надстройка реализующая работу с матрицами. Если сравнивать с OpenGl - то это драйвер.

ShadersEx.pas,Textures.pas - расширение функционала. Загрузчик текстур и шейдеры умебщие работать с текстурами и блендингом.

Main.pas - пример использования.

В растеризаторе сейчас испольузется очень медленное вычисление Varyings переменных. Значения вычисляются для каждого пикселя. Используется линейная интерполяция, поэтому текстуру козявит при трансформации полигона. Решение есть: использовать перспективную интерполяцию. Но она шибко медленная и кода там раз в 5 больше. Поэтому делать не стал.
Варианты оптимизации:
1) Не все значения нужно интерполировать. Если во всех трех вершинах значение одно и тоже, переменную надо помечать как неизменную и не трогать. Это приличное количество вычислений.
2)Сейчас значение вычисляется для каждого пикселя. Можно вычеслять по краям скан-линии и уже банально использовать приращение, а не интерполяцию.

Растеризатор прекрасно распаралеливается, можно хоть каждую скан-линию в отдельный поток определять.


 
@!!ex ©   (2009-10-28 13:06) [29]

Кстати, если перенести шейдеры и собственно растеризатор на OpenCL или CUDA, можно сделать вполне сносный рендерер для Макса и аналогичных инструментов.


 
_   (2009-10-28 13:35) [30]

Большое спасибо.

P.S. [Шёпотом] Сейчас сюда прибежит antonn. ;)


 
@!!ex ©   (2009-10-28 13:55) [31]

> [30] _   (28.10.09 13:35)

Эм.. Да ради бога. :)
Это чисто демонстрационный код, не претендующий на скорость или большие возможности.
Хотя возможность заменять FFP на свои обработчики позволяет делать все, что умеют современные видеокарты.


 
_   (2009-10-28 15:32) [32]

А где пример объёмной фигуры? Или хотя бы кубика? ;)


 
Sapersky   (2009-10-28 17:04) [33]

А где пример объёмной фигуры? Или хотя бы кубика? ;)

Видимо, все силы ушли на имитацию архитектуры OpenGL. На кубик уже не хватило :)

Вот ещё интересная демка:
http://sapersky.narod.ru/files/Voxel.rar
картинку рисует несколько корявую - но оцените объём кода... чистый рендер, безо всяких классов-битмапов - около 100 строк. А разрешение карты можно увеличить, хотя воксели прямо "под ногами" всё равно будут резать глаз квадратными формами. Нужно либо какую-то межвоксельную интерполяцию придумывать, либо делать подстройку детализации в зав-ти от расстояния (с фрактальной догенерацией мелких деталей). Или исключить возможность разглядывать воксели под ногами - изометрия (С&C3 вроде?), вертолётный симулятор (старые Comanche).
Глубоко по теме не копал, насколько технология в принципе перспективна - мне судить сложно, может быть, врождённые пороки неискоренимы на самом деле. Но у софтверного клона видеокарты перспективы тоже сомнительны, а воксели - это хотя бы оригинально :)
Впрочем, Кармак, как обычно, уже придумал всё до нас, скрестив бульдога с носорогом - "ray tracing into a sparse voxel octree":
http://www.pcper.com/article.php?aid=532


 
_   (2009-10-28 17:30) [34]


> Вот ещё интересная демка:


Шикарно. Можно немного посидеть и сделать небольшой шутер, который можно выставить на IGDC. ;)
P.S. antonn, вот точно, сейчас прибежит. ;)


 
@!!ex ©   (2009-10-28 18:00) [35]

> [32] _   (28.10.09 15:32)
> А где пример объёмной фигуры? Или хотя бы кубика? ;)

А в чем проблема набросать в растеризатор набор вершин задающих кубик?



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

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

Наверх




Память: 0.55 MB
Время: 0.023 c
2-1257797875
-=SV=-
2009-11-09 23:17
2009.12.27
Копирование программно вкладки


15-1256894913
ford
2009-10-30 12:28
2009.12.27
парсить web страницы посоветуйте


2-1257824241
Андрей Смирнов
2009-11-10 06:37
2009.12.27
Как подсчитать кол-во вхождений в RichEdit?


3-1232350553
Альф
2009-01-19 10:35
2009.12.27
Как отключить кеш в IB5.6 или что это было ?


15-1256427069
Игорь Шевченко
2009-10-25 02:31
2009.12.27
Вот и кончилось лето...