Форум: "Прочее";
Текущий архив: 2009.12.27;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.007 c