Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2011, 11:41   #1
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию Тестируем 2D движёк.

Даже и не знаю, можно это движком называть или нет.
По сути набор функций-обёрток над DX9. Отдельно в библиотеку пока не выносил, ибо не уверен в работоспособности.

Особенности
- функции не используют интерфейсы Direct_a с префиксом X. Используются только IDirect3D9->IDirect3DDevice9 и его производные.
-естественно, все функции написаны на асме.

возможности:
-отображение квадратных и прямоугольных картинок в заданных экранных координатах. Поддержка альфа канала (альфа канал грузится отдельно из gif, jpg, bmp файла, пока только так).
-Загрузка объектов из внешних файлов, либо из ресурсов программы.
-поворот изображения на произвольный угол
-массштабирование изображения по осям X и Y с отдельными весовыми коэффициентами.
-отображение рисованных шрифтов
-отражение изображения сверху-вниз, слева-направо.
-проигрывание анимаций в режимах - "по кругу", "№-ое количество раз", "№-ое количество мс".
-анимации могут быть как однострочные, так и многострочные.
-к анимациям применимы все перечисленные выше трансформации (масштабирование, поворот, отражение).
- где-то в этой куче ещё торчит DirectInput c DirectSound-ом. Ну там функционала никакого нет, кроме инициализации.

В архиве демка, вот собственно про неё я и хочу услышать отзывы. Работает, не работает. Как работает. Если не работает, то как не работает. В ранних версиях были заметны артефакты ввиде размазывания нижних частей картинок, но потом я это вроде победил. По кнопочке F1 можно включить\выключить альфу, фильтрацию текстур и установить период таймера рисовальщика.

Внимание, архив содержит exe. Мой Авир молчит, но базы у него уже двухнеделешные.
Вложения
Тип файла: rar test2DDX.rar (150.7 Кб, 48 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 29.03.2011, 12:51   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну, ничё, ништяк.
У меня выглядит так:


Мой NOD32 тоже вирусов не видит.
_-Re@l-_ вне форума Ответить с цитированием
Старый 29.03.2011, 17:06   #3
Whited
Пользователь
 
Регистрация: 20.02.2011
Сообщений: 21
По умолчанию

Вирусов моя авира не увидела, понравилось сиё творение!!!!!!!!!!!!
Whited вне форума Ответить с цитированием
Старый 29.03.2011, 22:56   #4
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

Цитата:
Даже и не знаю, можно это движком называть или нет.
Больше походит на фреймворк)

Все работает, глюков не заметил.
Можно еще добавить альфа-блендинг ко всему прочему), для изображений которые изменяют свою прозрачность во времени.
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 30.03.2011, 10:34   #5
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
Больше походит на фреймворк)
Я, к стыду своему, не очень понимаю различия. А что надо сделать, чтобы это был полноценный двиг? И как его тогда лучше оформить? Я вот думал как библиотеку (dll) сделать. Ну и pas, соответственно, написать.

Цитата:
Можно еще добавить альфа-блендинг ко всему прочему
Так это же почти то-же самое, что анимация? Или я чёт не понял?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 30.03.2011, 18:23   #6
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Цитата:
Сообщение от Ulex Посмотреть сообщение
Цитата:
Сообщение от .pixel
Можно еще добавить альфа-блендинг ко всему прочему
Так это же почти то-же самое, что анимация? Или я чёт не понял?
Это намек на поддержку графических форматов с альфа-каналом - png, tga.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Старый 30.03.2011, 18:37   #7
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
Это намек на поддержку графических форматов с альфа-каналом - png, tga.
Так это - я же глупый Намеков не понимаю, мне надо прямо говорить.

Вот вы меня с этим PNG прямо ловите постоянно, а чё, отдельный канал из gif-а прям вообще - фу, да?
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 30.03.2011, 21:11   #8
.pixel
c++, dx/ogl
Форумчанин
 
Аватар для .pixel
 
Регистрация: 10.11.2008
Сообщений: 131
По умолчанию

Цитата:
отдельный канал из gif-а прям вообще - фу, да?
Нет, откуда душе будет угодно грузи… можно сделать ресурс-файл и скрыть все там))

Просто в тесте я не увидел, плавно появляющегося и исчезающего грузовичка…
Разлетающиеся искры допустим надо будет сделать от замкнувших проводов, или молота бьющего по наковальне… Частицы изменяют свою прозрачность… эта возможность уже держится твоим фреймворком?)

Что-то типо:
Вывести спрайт с уровнем прозрачности от 0-255))
“Batch, Batch, Batch:” What Does It Really Mean?
I am a donut! Ask not how many tris/batch, but
rather how many batches/frame!
.pixel вне форума Ответить с цитированием
Старый 31.03.2011, 17:07   #9
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
Вывести спрайт с уровнем прозрачности от 0-255
Не, именно такого нету. Прозрачность определяется однозначно альфа каналом текстуры. А эффект меняющих прозрачность поверхностей можно внешними файлами сделать - т.е. это обычная анимация, с изменяющейся интенсивностью альфа канала.

Просто как я понял, директ может брать альфу из двух мест, либо из диффузной составляющей вершины, либо из альфа канала текстуры. А вот можно ли как-то между собой эти два источника замесить, я как то пока не нашёл.
И если брать альфу из вершины, то тогда вся поверхность спрайта (вместе с подложкой) становится однородно прозрачной, а это совсем не тот эффект. Если же брать альфу из тектуры, то, для динамического изменения прозрачности, надо постоянно эту тектсуру лочить и пересчитывать в ней альфу. Это сделать несложно, просто я ситаю что это неправильно. У меня пока преобладает идеология статичной текстуры. Т.е. текстуру можно на этапе загрузке собирать и чего то там с ней делать, а на этапе цикла отрисовки, текстуру трогать уже нельзя. Ну вот, пока как-то так.

Кстати, может кто подскажет, можно как то совместить два источника прозрачности - и вершину и текстуру? Тогда можно было бы общей прозрачностью рулить не трогая текстуру.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 31.03.2011, 17:19   #10
Beermonza
Инженер ИС
Старожил
 
Аватар для Beermonza
 
Регистрация: 13.12.2006
Сообщений: 2,671
По умолчанию

Ulex, как бы так чтобы не обидеть, ...сейчас твой движок на уровне приставок 95-го года, ...необходимо научить его работать со спрайтами с поддержкой полного альфа-канала, ...не просто есть или нет, а с прозрачностью от 0 до 255, ...тогда можно реализовать не только лучи света, облака дыма, тени, но и обеспечить естественные очертания 2D объектов, ...сейчас это просто грубая аппликация.

Вот смотри, где спрайт лучше вписывается в игровое пространство?

Alpha1.jpg

Вот как распределяется альфа-канал по дискретным значениям (их 256, но все не влезет, показал выборочно):

Alpha2.jpg

...таким способом реализуются исчезновения объектов, и вообще любые эффекты. Анимация вообще способствует "оживлению" объекта.
Руководитель проекта MMO 2D RPG: Настоящее имя Денис Стрижак (10.05.1981-6.02.2019) Мир духу его
Beermonza вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
движёк для 2D Demi Мультимедиа в Delphi 28 25.04.2011 10:06