love5an: (Default)
Direct3D Workshop теперь полноправная SxS assembly.

То есть, в том числе может устанавливаться в директорию кэша SxS как shared assembly.

Вот я даже сделал MSI-инсталлятор:
https://github.com/downloads/Lovesan/D3DWorkshop/D3DW-0.1.1.1.msi
(и в принципе его любой желающий может собрать из сорцов на гитхабе, при условии наличия у него VS хотя бы C++ express версии, Windows SDK, и WiX версии 3.0 и выше)

SxS(оно же Component Servicing Infrastructure (CSI)) это инфраструктура Windows навроде .NET GAC, но для нейтив библиотек и приложений. По факту, это практически полный эквивалент GAC, у них даже API похожи( http://msdn.microsoft.com/en-us/library/windows/desktop/aa376204(v=vs.85).aspx )
SxS это очень круто, решает многие проблемы с версиями библиотек и т.п.

Из недостатков(как я уже писал в juck) - линуксоиды им, по какой-то странной причине, пользоваться не умеют. Ну и соответственно, опенсорс-библиотеки с корнями в линуксах и т.п. подвержены проблеме DLL hell и сопутствующему(впрочем они этому и на родных платформах подвержены, гг).

Впрочем, создание SxS assembly это не такая тривиальная вещь, какой могла бы быть. Надо будет написать статейку на эту тему.

Кстати, библиотека зависит, кроме системных стандартных вещей, еще и от от D3DCompiler_43.dll, для компиляции шейдеров. Я думаю от этой зависимости в будущем избавиться, придумав бинарный формат для "эффектов", но пока что эту dll можно взять из MS DirectX SDK(ну или Windows SDK, если говорить о SDK для Win8).
love5an: (Default)
Я тут на днях начал писать код для мини-фреймворка для 2D и 3D графики, над Direct3D+Direct2D

Потому что почувствовал, что просто надстройки(ну я тут выкладыл сорцы библиотечки D3DU) чтобы скрыть всю сложность D3D не хватает, и надо его полностью скрыть за слоем чего-то удобноваримого.

Ну поэтому начал писать сабж.
Интерфейс библиотеки - одна функция, D3DWCreateWindow, а все остальное - COM-интерфейсы.
https://github.com/Lovesan/D3DWorkshop/blob/master/D3DWorkshop/D3DW.h
То есть, использовать можно будет и из C#(кстати для .NET планирую специальную обертку написать) и из лиспа какого-нибудь.

Основная фича такая: крайне сильно упрощен интерфейс нижележащего API, а точнее трех: под капотом интегрированы Direct3D 11, Direct3D 10.1 и Direct2D, т.е. 2D-графика и 3D-графика с общим интерфейсом. Для 2D пока сделано довольно мало, сразу скажу, фактически одна функция, Clear. Но в ближайшем будущем думаю привинтить основную функциональность Direct2D.

Несмотря на то что под капотом технологии MS, наружу они не торчат(кроме lightweight COM), то есть, в теории это дело можно будет перенести и под OpenGL+Cairo(или чем там щас в 2D рисуют).

Вот вобщем сорцы, и они будут пополняться:
https://github.com/Lovesan/D3DWorkshop

На первых порах следить за обратной совместимостью особо не обещаю, но в будущем думаю с этим будет получше.



Примеров там на гитхабе пока довольно мало, а точнее один, но в ближайшее время добавлю еще
love5an: (Default)
https://github.com/Lovesan/D3DU

Добавил новый пример - кубик с фракталом Мандельброта на гранях, который рисуется пиксельными шейдерами(если поставить сильно большой MAX_ITERS в шейдерах, дико тормозит -- но, все-равно, отрисовка на порядки быстрее, чем на процессоре(даже если использовать SSE) -- на моей не сильно новой видеокарте например при 80 итерациях вполне себе живое и двигающееся изображение -- а если ту же фигню рисовать например через GDI+, то оно будет тормозить просто невозможно. Современные GPU таки великая вещь.).
https://github.com/Lovesan/D3DU/tree/master/MandelbrotCube
картинка )

Также, добавил полезный интерфейс ID3DUFloatAnimation (сигнатуру практически украл из WPF, угу)
Read more... )

Также, добавил три функции-обертки над D3DCompile:
Read more... )

Так как у всего этого, как я уже говорил, lightweight-COM API, то использовать можно из любого языка, который способен вызывать сишный код.

Вообще, я это для стартапа пишу, но почему бы не поделиться - все-таки это не рокет сайнс, и не так уж сложно в реализации, чтобы скрывать сорцы.

D3DU

Feb. 16th, 2012 10:43 pm
love5an: (Default)
Кстати, я тут начал писать небольшую библиотеку-обертку над Direct3D 10/11

На плюсцах, но с COM-интерфейсом(т.е. использовать можно хоть из лиспа).

Может, кому еще полезно будет. Сорцы вот тут:
https://github.com/Lovesan/D3DU
Там есть и пример - в директории Triangle.
love5an: (Default)
Написал первую часть статьи-туториала про D3D11 для хабра. Получил за нее инвайт, кстати.
http://habrahabr.ru/blogs/3d_graphics/129166/

Profile

love5an: (Default)
Dmitry Ignatiev

December 2016

S M T W T F S
    123
45678910
11121314 151617
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 24th, 2017 02:34 am
Powered by Dreamwidth Studios