1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

SLC file format

Тема в разделе "RenderMan", создана пользователем -, 21 авг 2000.

Модераторы: Moderator.
  1. Guest

    SLC - открытый формат или нет? Может кто с Гритцем общался? Есть ли по формату описание? Я знаю, что есть прецеденты чтения SLC напрямую. Это, конечно, достаточно прозрачный формат, но заниматься реверс-инжинирингом подобного ассемблера не очень хочется.
     
  2. Guest

    SLC - это не формат, это уже скомпилированный шейдер (причем именно для BMRT). В комплекте BMRT есть утилитка, которая вроде расковыривает готовые шейдеры. Непонятно только зачем это нужно? Почти все шейдеры есть в исходниках.
     
  3. Guest

    > SLC - открытый формат или нет? Может кто с Гритцем общался? Есть ли по > формату описание? Я знаю, что есть прецеденты чтения SLC напрямую. >Это, конечно, достаточно прозрачный формат, но заниматься реверс- > инжинирингом подобного ассемблера не очень хочется.

    Привет,

    Я общался, пока писал slcEditor (обрати внимание на название ;-) ).

    SLC сиречь закрытый приватный формат шейдеров, скомпиллированных в байт код для непосредственного рендеринга в BMRT. Аналогом в prman является формат SLO. Я в первых версиях парсил этот формат руками, пока Ларри попросил не делать этого, поскольку он (формат) меняется от версии к версии и совместимость не гарантируется.

    Для использования формата из своих программ рекоммендуется поставляемая вместе с BMRT библиотека libslcarg.lib, для использования которой в Delphi я сделал оболочку slcargwrap.dll (доступна на моем сайте в сорцах).

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

    Regards,
    Alexei Puzikov aka Kidd24
    http://www.dream.com.ua
     
  4. Guest

    Понятно. Спасибо. Еще вопрос. Формат slc меняется от версии к версии, так? Обеспечивает ли Гритц обратную совместимость? То есть старые SLC читаются ли новыми BMRT или SL надо перекомпайлить? Если обратная совместимость форматов Гритцем гарантируется - то игра стоит свеч.

    Дело в том, что вы с Доктором немного не поняли. Мне требуется парсинг не входных ПАРАМЕТРОВ шейдера (что элементарно делается через либу или утилиту), а парсинг ВСЕГО скомпилированного шейдера. Хочу читать скомпилированные шейдеры (то есть их суть) без помощи BMRT.
     
  5. Guest

    > Формат slc меняется от версии к версии, так?

    Да.

    > Обеспечивает ли Гритц обратную совместимость? То есть старые
    > SLC читаются ли новыми BMRT или SL надо перекомпайлить?

    Читаются, но это не гарантируется.

    > Если обратная совместимость форматов Гритцем гарантируется - то
    > игра стоит свеч.

    Еще раз - это не гарантируется. Вполне возмодно, что в следующем релизе формат поменяется очень сильно или вообще отойдет в небытие в связи с переходом на DSO/DLL.

    > Дело в том, что вы с Доктором немного не поняли. Мне требуется
    > парсинг не входных ПАРАМЕТРОВ шейдера (что элементарно
    > делается через либу или утилиту), а парсинг ВСЕГО
    > скомпилированного шейдера. Хочу читать скомпилированные
    > шейдеры (то есть их суть) без помощи BMRT.

    Утилиту пишешь? Какую?
     
  6. Guest

    SDK
     
  7. Guest

    Опа. К кому?
     
  8. Guest

    К Рендермену. К стандарту :) То есть это будет библиотека, которая обеспечивает чтение и запись файлов в различных форматах. В RIB, SL, может быть SLC, и так далее. С необходимым и расширенным набором функций. Практически, там должно быть все, что бы построить свой собственный рендерер (за исключением функций работы с геометрией и непосредственно рендеринга). Но этим она не ограничивается. Я надеюсь оптимизировать ее по памяти, под различные процессоры (как минимум под MMX/SSE), обеспечить малтитриадинг, НОРМАЛЬНЫЙ превью в OpenGL (с использованием шейдеров), поддержать различные RM-биндинги. Например, построение конвертера RIB->Python, RIB->Scheme или RIB->C должно по сути стать делом нескольких строчек кода. То есть суть библиотеки сводится к парсингу и лексическому анализу RIB, SL, SLC, C и тп, запись в собственном формате, внесение изменений на лету, а затем снова запись на диск в другом формате, или что еще (например передача данных рендереру, браузеру объектов, редактору, 3D программе).
     
  9. Guest

    Вау.

    Круто.

    Мегапроект. Аж страшно ;-)
     
Модераторы: Moderator.

Поделиться этой страницей