IPB

Добро пожаловать, гость ( Вход | Регистрация )

 
Reply to this topicStart new topic
> .DDS DirectX 10, converter/viewer
-=CHE@TER=-
Nov 1 2008, 19:50
Сообщение #1


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,203
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 287 раз(а)



Недалее как вчера пришло письмо с жалобой, на то что 3DMark2005 / 3DMark2006 unpacker криво распаковывает некоторые .DDS файлы из 3DMarkVista: Vantage. Оказывается он распаковывает нормально, просто у большинства .DDS файлов теперь формат DX10 и что-то, типа BCU4 (или типа того, не помню - удалил уже, снова распаковывать сейчас лень, однако, если кому-то понадобятся "образцы" - могу сделать).
Скачал последнюю версию XnView, InfraView и даже какую-то прогу из раздела SDK с сайта nVIDIA - ни одно из этих средств справиться с новым форматом не смогло.

Внимание вопрос: кто-нибудь знает софт умеющий работать с этим, новым, форматом .DDS?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Nov 3 2008, 16:50
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,203
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 287 раз(а)



Товарищ Jam Jam сообщивший о проблеме с .DDS нашёл программу, которая её разруливает: The Compressonator - AMD. Правда открывает только ~90% файлов - есть парачка, которые отчего-то не хотят открываться - но это мелочи. И ещё: в виду присущей разработчикам из AMD кривизны рук поменяйте у скачанного .EXE файла расширение в .MSI.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Axsis
Dec 14 2010, 21:07
Сообщение #3


Advanced Member
***

Группа: CTPAX-X
Сообщений: 118
Регистрация: 6-February 08
Пользователь №: 374
Спасибо сказали: 146 раз(а)



BC4U открываются, а DX10 - нет. Поиски продолжаются.
Попробую ещё утилитки для разработчиков от зелёного производителя видеокарт.

Добавлено: И они оказались бесполезны.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Sep 24 2016, 13:27
Сообщение #4


Advanced Member
***

Группа: CTPAX-X
Сообщений: 473
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 201 раз(а)



Было ли найдено решение для конвертирования текстур DX10?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Sep 24 2016, 13:56
Сообщение #5


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,203
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 287 раз(а)



Я забил тогда, если честно. Но за прошедшие 6 лет какое-то решение, предполагаю, должно было появиться.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Axsis
Sep 24 2016, 15:39
Сообщение #6


Advanced Member
***

Группа: CTPAX-X
Сообщений: 118
Регистрация: 6-February 08
Пользователь №: 374
Спасибо сказали: 146 раз(а)



Я тогда написал bms для конвертирования в обычный DDS "обычных" текстур, который работал примерно на 90 процентах текстур которые мне попадались.
Под "обычными" я подразумеваю RGBA, DXT1, DXT3, DXT5 текстуры. Это основные форматы, а вообще их там довольно много бывает, и не у всех есть аналоги в DX9, то есть не любую текстуру DX10 можно сконвертировать в DX9

dx10_to_dds.bms
CODE
IDString "DDS "
GoTo 0x54
GetDString FOURCC 4
If FOURCC == "DX10"
Append
Log MEMORY_FILE 0 0x80
Get DATA_SIZE asize
Math DATA_SIZE -= 0x94
Log MEMORY_FILE 0x94 DATA_SIZE
Math DATA_SIZE += 0x80
Append
GoTo 0x80
Get DXGI_FORMAT long
If DXGI_FORMAT == 0x1D
  Set FOURCC long 0x00000000 #RGBA
  PutVarChr MEMORY_FILE 0x50 0x00000041 long
  PutVarChr MEMORY_FILE 0x58 0x00000020 long
  PutVarChr MEMORY_FILE 0x5C 0x000000FF long
  PutVarChr MEMORY_FILE 0x60 0x0000FF00 long
  PutVarChr MEMORY_FILE 0x64 0x00FF0000 long
  PutVarChr MEMORY_FILE 0x68 0xFF000000 long
ElseIf DXGI_FORMAT == 0x48
  Set FOURCC long 0x31545844 #DXT1
ElseIf DXGI_FORMAT == 0x4B
  Set FOURCC long 0x33545844 #DXT3
ElseIf DXGI_FORMAT == 0x4E
  Set FOURCC long 0x35545844 #DXT5
Else
  Print "Unknown DXGI_FORMAT (%DXGI_FORMAT%)"
  CleanExit
EndIf
PutVarChr MEMORY_FILE 0x54 FOURCC long
Get FNAME basename
String FNAME += ".dx9.dds"
Log FNAME 0 DATA_SIZE MEMORY_FILE
Else
Print "Not a DirectX 10 DDS file"
EndIf


dx10_to_dds.cmd
CODE
for /r %%I in (*.dds) do "quickbms.exe" dx10_to_dds.bms %%I %%~dpI >>dx10_to_dds.log


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Grom PE
Sep 24 2016, 19:02
Сообщение #7


Advanced Member
***

Группа: CTPAX-X
Сообщений: 84
Регистрация: 7-February 08
Из: i@grompe.org.ru
Пользователь №: 3,120
Спасибо сказали: 95 раз(а)



ffmpeg поддерживает декодирование dds, вполне возможно, что и поддержка dx10 там есть.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Axsis
Sep 26 2016, 19:14
Сообщение #8


Advanced Member
***

Группа: CTPAX-X
Сообщений: 118
Регистрация: 6-February 08
Пользователь №: 374
Спасибо сказали: 146 раз(а)



Я просто оставлю это здесь:
https://software.intel.com/en-us/articles/i...re-works-plugin
https://github.com/Microsoft/DirectXTex
_ttp://skyrim.pro/stati/instrumentarij/100-dds-converter


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Mar 25 2017, 07:20
Сообщение #9


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,203
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 287 раз(а)



Не совсем в тему, но всё ж.
.DDS (DirectDraw Surface) to .TGA texture converter v1.4
В самом низу страницы. Утилита конвертирующая .DDS в .TGA, основанная на ReadDXT от nVIDIA из DDS Utilities версии 8.30 от 2007 года. С новыми .DDS (DirectX 10+ и прочие) работать не будет! С исходными кодами на Си (VS C++ 6.0).
Вообще, утилиту писал 12 лет назад, тупо добавив в ReadDXT работу с маской "*.dds". Потом, когда появился The Compressonator и другие утилиты, я её с сайта убрал (лет 10, наверное, назад). Однако, примерно месяц назад со мной связался Aka Sektor и сказал что в сообществе мододелов для S.T.A.L.K.E.R. моей утилитой до сих пор пользуются. Попросил поглядеть что там с новыми файлами и прозрачностью - утилита, мол, на них не работает. Однако, исправить я ничего не мог, потому что там .LIB файл без исходных кодов, только с заголовочным файлом. Бибилиотека эта была у меня от версии DDS Utilities 6.74 - я обновил до 8.30 - это последняя на сайте nVIDIA (на сайте написано 8.31, но в библиотеке указано 8.30), до того как они болт на эту библиотеку положили. И тут выяснилось страшное: все .LIB файлы для 8.30 собраны под 7-ой студией, а у меня только 6-ая. Искать и собирать под 7-ку мне очень не хотелось, так что пришлось изрядно попариться (особенно с частью отсутствующих функций), чтобы собрать под 6-ку, но я всё ж собрал и теперь программа будет работать под любым Windows (см. исходные коды - там много интересного). К тому же к новой версии ReadDXT исходных кодов не было (не говоря уже о том, что .LIB переписали на классы) и часть .DDS файлов она не конвертировала, которые конвертировала старая верси 6.74. В общем, Aka Sektor мне присылал .DDS файлы которые неправильно конвертировались старой версией dds2tga или старой они конвертировались, а новой нет. В итоге, общими усилиями, собрали таки обновлённую версию, правда, Volume Mip Map я не проверял, ибо не на чем. И хотя утилита не поддерживает новых расширений .DDS, зато, как сказал Aka Sektor, она небольшая, шустрая и везде работает - за это мододелы её и ценят.
Я думал стоит здесь про это писать или нет, потом вспомнил, что Axsis как-то писал, что утилиты от nVIDIA более или менее правильно .DDS конвертируют, в отличие от многих других, поэтому решил всё же об этой утилите упомянуть - может кому-нибудь тоже пригодится.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 17th September 2019 - 18:59