Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Перейти вниз

Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Crusler в 2015-10-14, 13:45

Исполныемый файл программы:
https://yadi.sk/d/gHjw73gx3PDMxE
- подпапка textures: текстуры для додекаэдров и икосаэдра
- подпапка images: текстуры образов внутри конструкции
- подпапка background: фоновые картинки

Исходные коды программы (delphi 7, OpenGL, 20.09.2017):
https://yadi.sk/d/imspXuGl3N5Amv
----------------------------------------------------------------

Для тех, у кого не отображается панель с элементами управления предлагается исполняемый файл альтернативной версии программы (GLScene, Delphi 7).
https://yadi.sk/d/J63CDMhh3ZTsMS


----------------------------------------------------------------


Исходные коды небольшой программы с одним додекаэдром под DirectX9 (delphi 7):
https://yadi.sk/d/RLVaMaX23BCUmh
----------------------------------------------------------------


Пояснения расчета додекаэдра:
https://yadi.sk/i/6EoQm5tE3Gantc
----------------------------------------------------------------


Системные требования:
- MS Windows (Тестировалось на XP)
- Поддержка OpenGL видеокартой

TAB: панель управления
ESC: выход
* Вращение: бегунки + мышь (через зажатую левую клавишу мыши).
  версия 1
      S - остановить вращение
      P - сделать снимок экрана (сохраняется в подпапке screenshots)

 альтернативная версия
    Стрелки клавиатуры - изменение позиции источника света
    ctrl + space - восстановление позиции света в 0
    space - восстановление позиции текущего задействованного ползунка
 









**
23.07.2018 Добавлена альтернативная версия программы с работающей панелью (GLScene)
30.10.2017 Исправлена ошибка загрузки текстуры
27.09.2017 Исправлены мелкие ошибки
20.09.2017 Добавлена новая версия программы с возможностью выставления текстур объектов, фона, образов внутри конструкции.
Построение икосаэдра вынесено в отдельную функцию. Программа не использует визуальных компонент. Поддержка текстур jpg, bmp и tga с альфа каналом. Сглаживание выполняется средствами GL_ARB_MULTISAMPLE.
30.05.2017 Добавлена возможность простого наложения текстуры на внешний додекаэдр (файл text.jpg в папке с программой; может
быть любой ваш рисунок, но расширение должно быть jpg, тестовая версия). Текстурные координаты описаны в пояснении
к построению. Текстура включается чекбоксом около цвета граней. Пример текстуры находится в архиве с исходными кодами программы.
05.04.2017 Исправлено некорректное отображение некоторых цветовых оттенков
27.12.2016 Изменены некоторые параметры отрисовки, приводящие к ошибке "An application has requested more GPU memory..." на некоторых видеокартах
26.12.2016 Вся структура отредактирована согласно описанию из части 3 главы 11 Светлого веника
23.12.2016 Плавное вращение через зажатие левой клавиши мыши и последующее передвижение мыши
16.12.2016 Исправлена неточность с отображением икосаэдра при первом старте программы
08.12.2016 Внесены небольшие изменения (отображение ребер и вершин для икосаэдра)
19.11.2015 Добавлена возможность включения автоматического произвольного изменения цвета граней
06.11.2015 Немного переработан механизм отрисовки.
30.10.2015 Добавлена возможность корректно поставить программу в качестве экранной заставки Windows
                1. Переименуйте расширение файла с ".exe" на ".scr"
                2. Скопируйте файл "Dodeca.scr" в папку "windows\system32"
                3. В настройках компьютера выбрать из списка застовок "Dodeca"
27.10.2015 Добавлено небольшое сглаживание контуров
15.10.2015 Исправлены небольшие ошибки

------------------------------------------------------------------------------

В общем случае матрица додекаэдра состоит из элементов золотого числового ряда

taubig = 1.61803398875; // (Sqrt(5)+1)/2
tausmall = 0.61803398875; // (Sqrt(5)-1)/2
C = 1;

и выглядит следующим образом

(
(- TAUBIG; 0; TAUSMALL),
(- TAUBIG; 0;- TAUSMALL),
( TAUBIG; 0;- TAUSMALL),
( TAUBIG; 0; TAUSMALL),
( TAUSMALL; - TAUBIG; 0),
(- TAUSMALL; - TAUBIG; 0),
( - TAUSMALL; TAUBIG; 0),
( TAUSMALL; TAUBIG; 0),
( 0; TAUSMALL; - TAUBIG),
( 0; - TAUSMALL; - TAUBIG),
( 0; - TAUSMALL; TAUBIG),
( 0; TAUSMALL; TAUBIG),
( - C; - C; C),
( - C; - C; - C),
( C; - C; - C),
( C; - C; C),
( - C; C; C),
( - C; C;- C),
( C; C; - C),
( C; C; C)
)


Последний раз редактировалось: Crusler (2018-10-10, 07:44), всего редактировалось 54 раз(а)
avatar
Crusler

Сообщения : 17
Репутация : 0
Дата регистрации : 2014-05-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор 5i5 в 2015-10-14, 14:12

Отлично! Ещё бы в разные стороны его (влево-вправо). А то все настройки в одну сторону его вертят.
avatar
5i5

Сообщения : 136
Репутация : 0
Дата регистрации : 2014-05-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Daria в 2016-02-13, 22:33

Очень крутой проект! а на чем ты его писал?

Daria

Сообщения : 2
Репутация : 3
Дата регистрации : 2016-02-13

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Crusler в 2016-02-16, 09:01

Daria, благодарю.

Писал на Delphi 7 + dglopengl.pas. Перепробовал много чего: Glut, GLScene, разные движки типа ZenGL и в итоге остановился на dglopengl, т.к. он без проблем подключался к Делфи, а возвращаться на C++ не хотелось.

Насчет крутости это на первый взгляд и только, возможно, снаружи. Если посмотреть на код, то он не совсем ровный т.к. писалось все в целях изучения OpenGL и я не думал, что из этого что то выйдет, а переписывать все в класс уже нет желания. Делалось все с целью чаще видеть перед собой додекаэдр и вертеть его как угодно, менять прозрачность, цвет и тд, потому что способность к мысленному представлению этой фигуры у меня хромала на тот момент.

Если есть желание что то для себя изучить из этого, то могу выслать исходники.
avatar
Crusler

Сообщения : 17
Репутация : 0
Дата регистрации : 2014-05-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Daria в 2016-02-18, 11:39

Решила начать изучать графику, поэтому очень интересно посмотреть что и как делать. Скинь пожалуйста исходники, если не сложно)))

Daria

Сообщения : 2
Репутация : 3
Дата регистрации : 2016-02-13

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Максим2017 в 2017-11-03, 03:08

При запуске Dodeca.exe (20.09.2017) 2 версии не могу вызвать меню через TAB, появляется только курсор мыши.
Windows 7 64 bit

Максим2017

Сообщения : 2
Репутация : 0
Дата регистрации : 2017-11-03

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Crusler в 2017-11-03, 07:00

Мне нужен последний лог-файл из папки Logs. У меня такая ситуация была на относительно старых видеокартах и с этой проблемой вопрос пока не решен. Присылайте на Crusl@mail.ru
avatar
Crusler

Сообщения : 17
Репутация : 0
Дата регистрации : 2014-05-05

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Максим2017 в 2017-11-03, 13:03

Буду ждать исправления, заранее благодарю за труды.

Максим2017

Сообщения : 2
Репутация : 0
Дата регистрации : 2017-11-03

Посмотреть профиль

Вернуться к началу Перейти вниз

Re: Додекаэдр и икосаэдр (Delphi 7 OpenGL, DirectX)

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения