Непреодолимое желание понтануться

Обсуждение проектов наших жителей.
Вы можете выставить проект на тест или найти помощников для его реализации.

Модератор: BV

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Непреодолимое желание понтануться

Сообщение tyomitch » 11.12.2004 (Сб) 2:31

Разбирая сегодня старые проги, нашёл свой прошлогодний проект, сданный вместо экзамена по курсу "Компьютерная графика" - рейтрейсер с поддержкой разнообразных тел, разноцветных источников света, отражений и т.д. Вместе с обидой, что никто этой красоты не видел, возникло сабж ;-)
Изначально он был написан на BP7 и не работал с другими видюхами, кроме моей; поэтому для сдачи я его скомпилировал в делфи. Как там сделать аналог AutoRedraw = True, я не стал разбираться, и поэтому скомпилировал рейтрейсер в длл-ку, вызываемую из VB-обёртки.
Переписывать его полностью на VB было бы сложно из-за активного использования наследования реализации; если когда-нибудь удастся убедить себя освоить VB.net, тогда наверное перепишу на нём :-)
Самое главное в этом рейтрейсере - что я его писал полностью "из головы", не подглядывая в чужие исходники; в итоге всё оформилось в стройную, красивую и легко расширяемую структуру классов.

В архиве: 3D.* - досовская версия (с вероятностью 90% у вас не заработает, но не грех попробовать); ThreeD.* - виндовая версия; src32 - виндовые исходники. Сцена задаётся текстовым файлом со сложным и неочевидным синтаксисом (который я уже забыл :-D) Работает довольно медленно, как и полагается рейтрейсеру.
У вас нет доступа для просмотра вложений в этом сообщении.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.12.2004 (Сб) 5:13

:shock: И этот чел заморачивается менюшками...

Досовская версия работает на ура (98SE, хе-хе).
Остальное тоже...
Думаю, придётся тебе объяснять принцип работы, причём подробно, поскольку что такое ретрейсер я не знаю :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.12.2004 (Сб) 6:11

Хм... :)
А что делает директива $N+? Не нашёл...
А с какой версией дальфи ты сохраняешь совместимость? Потому что inherited давно есть.

То ли заморочиться переводом? :)


Не, ведь реальная тулза может получиться по построению сцен, задаваемых текстовым файлом! Синтаксис легко восстанавливается из кода :) Предлагаю сделать возвращение из функции Paint HBITMAP :)
Давай, высказывай конструктив :) Посрамим 3DMax :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 11.12.2004 (Сб) 11:09

$N+ включает поддержку сопроцессора в BP7 (по умолчанию стоит эмуляция). inherited там нету. Сохраняю совместимость именно с ней :-D

Рейтрейсер - штука, которая пускает из глаза через каждую точку экрана луч и смотрит, в какой/ие источники/и света он придёт после всех отражений и преломлений. Но вот преломления у меня нет, не успел дописать :-(
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 11.12.2004 (Сб) 11:12

Так, вторую и третью строчки ты прокомментировал... Остальные? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 11.12.2004 (Сб) 15:36

До макса этой штуке конечно далеко, но весьма и весьма..

Браво :thumleft:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 14.12.2004 (Вт) 19:40

белый экран ((( может кто-нить скрин скинуть? охота глянуть....
ХЎ

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 14.12.2004 (Вт) 19:55

Дык, по нему два раза кликнуть надо, чтоб нарисовалось... И подождать :-)
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.12.2004 (Ср) 9:25

Кстати, досовскую версю на хрюшке лучше не пускать :) Мне тут пришлось заюзать восстановление с контрольной точки :)


Ну и, собсно, порт на NET :)
Скомпилированное включено, так что не обладающие оным тоже смогут заценить :)
У вас нет доступа для просмотра вложений в этом сообщении.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.12.2004 (Ср) 9:26

Юзается как COM-класс из VB6.
Сцена в папке Delphi.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 15.12.2004 (Ср) 20:02

Чёт не работает нифига :-(
Пример-то дай? А то у меня даже экземпляр не создаётся.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.12.2004 (Чт) 5:01

Ээээ... :roll:
В референсах находишь retracer.tlb
Коддд:
private sub form_load
set me.picture=new retracer.retracer.fromfile("path")
end sub


А вот почему не кушает retracer без retracer.retracer, этого я не знаю :?
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.12.2004 (Чт) 5:59

Не компилируется. Компилируется вот так:
Код: Выделить всё
Private Sub Form_Load()
Dim Retracer As New Retracer.Retracer
Set Me.Picture = Retracer.FromFile("path")
End Sub

И всё равно Run-time error '429': ActiveX component can't create object
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.12.2004 (Чт) 7:02

Код, который юзал я:
Код: Выделить всё
private sub form_load
  dim a as retracer.retracer
  set a=new retracer.retracer
  me.picture=a.fromfile("path")
  set a=nothing
end sub


Это работает...
А точно у тебя FW 1.1 стоит? :)

И, кстати, теперь нельзя указывать -1 как измерение картинки. Напиши, к примеру, 0 0 1023 767
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.12.2004 (Чт) 7:19

GSerg писал(а):А точно у тебя FW 1.1 стоит? :)

А как узнать? :-?
Чего-то я ставил, не помню чего...

GSerg писал(а):И, кстати, теперь нельзя указывать -1 как измерение картинки. Напиши, к примеру, 0 0 1023 767

Да не доходит дотуда, даже объект не создаётся.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 16.12.2004 (Чт) 9:15

Даже не знаю, чё посоветовать.

Разве что качнуть последнюю версию сам знаешь откуда? :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.07.2006 (Вс) 4:13

Вон чего от бессонницы отрендерил:
Изображение
Картинка получена досовским паскалем.
Привет любителям директыксов.
Изображение

Kovu
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 924
Зарегистрирован: 29.04.2005 (Пт) 17:38

Сообщение Kovu » 02.07.2006 (Вс) 20:54

GSerg писал(а):Кстати, досовскую версю на хрюшке лучше не пускать :) Мне тут пришлось заюзать восстановление с контрольной точки :)



Не знаю, не знаю, на ХР запустилось без всяких проблем и отрисовало :)
Если всё делать своими ручками, они скоро отвалятся !


Вернуться в Наши проекты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 52

    TopList