Render.ru

ShaderMan first beta release

#1
Всем привет,

Сабж находится на http://www.dream.com.ua/downloads/shaderman_beta1.zip

Мой список фичеров еще не исчерпан, но тем не менее программа стабильна и отлично делает все необходимое, так что it's a perfect time for first beta release ;-)

Слать комментарии и брики можно по мылу или выкладывать здесь.

Regards,
Kidd aka Alexei Puzikov
http://www.dream.com.ua
 
#2
Алексей, вот что я натыкал:

1. Говорю New Shader, и у меня в дропдауне список из 4х-кратно повторенных volume, surface, и т.д.
перезапускаю TheTool, и все приходит в себя. Больше этого не видел, как ни старался.
2. Настройки на рендерер в Options приходится при каждом запуске устанавливать заново, а это не есть хорошо :)
3. В панели "пропертиз" рядом со значением параметра space есть такая штучка, которая по смыслу должна бы отобразить список возможных spaces, но вместо этого она открывает окошко "Select texture file".
4. Опять там же - в пропертиз - не могу набрать значение ни одного параметра цифирками. То есть цифирку ввожу, давлю Enter, а она пропадает. При тыкании в другой параметр - в старом появляется что-то вроде ||4||4||4|| и кнопочка для вызова "слайдера" уже ничего не вызывает. Приходится удалять брик и создавать новый. И такая херня бывает часто и не только после ввода цифирок, но и выбора цвета...
5. Хорошо бы отслеживать, были ли изменения со времени последней записи, и предлагать записаться при выходе.
6. Я не совсем понял, есть ли способ разорвать connection, кроме как удалить brick?

А вообще-то задумано круто! Я, к сожалению, еще не испытал "начинки", а больше потыкал по интерфейсу. У меня еще есть пара сомнительных соображений, тоже по поводу интерфейса, к которым можно не отноститься серьезно. Вот они:

1. Rootы, по-моему, должны как-то сильнее отличаться от остальных бриков - цветом, или шрифтом или картинкой?
2. На правой кнопке сейчас сидят довольно разнородные вещи, например - About и Delete. Первое нужно достаточно редко, а второе - наоборот. Может, не место там для About'а? Или обозвать его Properties?
3. Хорошо бы иметь возможность "вставки" чего-то в серединку connection, как в Max Materils editor, когда он спрашивает "Keep map as a submap"?
 
#3
Всё это очень странно... Пара комментариев внизу.

<a>2. Настройки на рендерер в Options приходится при каждом запуске устанавливать заново, а это не есть хорошо :)</a>

А в INI файл они записываются?

<a>3. В панели "пропертиз" рядом со значением параметра space есть такая штучка, которая по смыслу должна бы отобразить список возможных spaces, но вместо этого она открывает окошко "Select texture file".</a>

Не факт. Это параметр типа string. Там может быть что угодно и я никак не могу по имени определить, что там будет именно space.

<a>4. Опять там же - в пропертиз - не могу набрать значение ни одного параметра цифирками. То есть цифирку ввожу, давлю Enter</a>

А если Enter не давить, то все будет нормально. А так - bug ;-)

<a>5. Хорошо бы отслеживать, были ли изменения со времени последней...</a>

Это да...

Спасибо за почин, жду дальнейших репортов...
 
#4
Не, в ini-файле только список рендереров и все. А про спейс нейм - действительно, проблема ведь... Проверять содержимое и если одно из "world", "current", "shader" и т.д и к тому же отсутствуют признаки имени файла (точка) - довольно тупо, но - больше пока придумать ничего не могу...
 
#5
Привет Алексей!

Начнемс пожалуй репортить баги и пожелания.

1. Displacement Shaders:
Ты забыл про Displacement Bound. Фрактал с амплитудой 0.1
уже дает трещины (PRMan). В BMRT как я понял это просто Bump.

2. Если значение вводить ручками с клавы + Enter то оно вообще
пропадает из окошка. Появляеться он только после создания
какого либо бокса причем с псевдосимволом Entera в конце.
При попытке изменить его (клава+Enter) новое значение
дописываеться к старому.
Получаеться string из значений разделенных псевдосимволами.

3.По поводу окна:
Если прописать резолюшн 256x256 то:
BMRT просто покажет кусок через окшко отведенное под preview
PRMan тоже но в окошке размером 128х128
Не лучше ли сделать независимое окно?

4. Скролинг рабочего поля в будущем не помешал бы. (комуто места мало будет)

5. Попробуй сделать сразу несколько Displacement-castucco. (Параметры видны
только для одного)

6. Сделай Displacement-castucco а теперь Displacement-Emboss. Из параметров
исчезнут Km и freq для castucco. Налетели друг на друга?

7. Автопереконект непомешал бы. Както неочень удобно сначала
разрывать старое соединение чтобы сделать новое.

8. Удаление бокса по backspace или delete булобы удобнее.

9. Временами нехочет показывать view source.
Например после вставки Envref и указания какого либо файла он пишет
Cannot open the brick\patterns\envref.br file
Make sure a disk is in the drive you specified
Мало того он перестает находить compiler.exe и log файл.
Неспасает и удаление Envref.

10. Сделать прозрачный материал на черном фоне весьма проблематично.
Какойнить чекер пришолсяб кстати.


 
#6
Прочитал, все правильно. Некоторые проблемы описаны в changes.txt.

Как вообще впечатление?
 
#7
Good Start!
Главное довести до финиша.
Просто, быстро и без постороннего вмешательства (perl)
Что есмь XML и что нужно почитать что бы набросать
пару своих кирпичей?
Вот тут еще кое что помелочи:

1. Когда делаеш Light Shader
генериться риб без присвоения surface
шейдера рэндэр-объекту. Поэтому
лайт просто игнориться.

Format 128 128 1
PixelSamples 1 1
ShadingRate 3
FrameBegin 1
Display "C:/TEMP/tempfile.tif" "file" "rgb"
Projection "perspective" "fov" 40
WorldBegin
LightSource "test" 0
Translate 0 0 3.1
Rotate -90 1 0 0

# Surface "matte" # здесь просто необходим

Sphere 1 -1 1 360
WorldEnd
FrameEnd


2. Не все нойсовые кирпичи имеют P входным параметром.
Отсюда невозможность их использования в лайт шейдерах
где требуеться Ps

3. Тип variant - тут проблемы...
Попробуй сделать 2 кирпича color
и сложи их кирпичом add или union (хоть и color но тоже неработает)
Генериться примерно следущее:

surface test (
color aColor3=color(1.0,1.0,1.0);
color aColor2=color(0.19,0.24,1);
)
{
/** Surface main-code start **/

/** Surface main-code end **/

Ci = $a+$b-($a*$b) ;

}
Вобщем мат операции требуют пересмотра в плане
смешанных типов операндов и результата.

4.Коль скоро есть кирпич string и color то
кирпичи float,normal,vector,matrix тоже нужны.

5.Есть предложение заменить привьюшное окно на
типа render globals:
Renderer, Render Object, Shading Rate, Pixel Samples,
Displace Bound
Крайне желательно было бы иметь что то типа scale
c чекбоксом shader only.
Всмысле просто scale - наезд/отъезд (восновном для дисплэйс шейдеров)
scale+shader only - масштаб шейдера относительно объекта (как в слиме)
И всетаки независимЫЕ привьюшнЫЕ окнА существующИЕ пока ИХ не закроют - есть хорошо.
Так гораздо удобнее отслеживать изменения ибо есть с чем сравнить.

6. Десяток кирпичей и найти нужный параметр в shader properties
уже трудно. Может туда лучше выводить только активный кирпич?


 
#8
Алексей, поделись опытом: а ты сам как пользуешься SlcEditor и ShaderMan-ом? Сейчас я пишу ручками в Notepad'е текст, отлаживаю на простом рибе, а потом из него Слимовский темплейт делаю. Геморрой страшный, но - зато исходный текст у меня всегда под носом. Короче, как-то мне привычнее "code-oriented" подход. Или я что-то не догоняю?
 
#9
Попользовался Тулзом и родились некоторые мысли:
Сделано отлично (есть конечно пока кое-какие баги :)). Но хочу сказать немного о другом: я попытался представить как можно этот продукт использовать в повседневной работе (думал довольно долго...). С моей точки зрения Шейдермэн - это что-то среднее между обычным ручным кодингом и тулзом типа Слима. Значительно больше возможностей чем у Слима, но недостаточная простота, чтобы им начал пользоваться человек без приличной физ-мат подготовки. Однако для продвинутого 3Д моделлера, думаю будет легче просто ручками написать код шейдера или темплейта (так как для сложного шейдера количество кирпичей будет слишком большим). Вот исходя из этих размышлений мне видится две важных вещи, которых ИМХО не хватает в Шейдермэне:
С одной стороны - это возможность колапсить сложные сетки из кирпичей (в один кирпичик) и записывать их в собственную библиотечку, причем не обязательно полностью шейдера, а только выбранный кусок иерархии. Тогда можно будет иметь, например, собственную библиотечку хитрых мат. операций или векторных преобразований. Я понимаю, что это можно сделать и руками в XML формате, но в этом случае теряется весь визуальный смысл программы.
С другой стороны, очень хочется иметь возможность выгружать конечный шейдер или кусок шейдера в Слимовский темплейт. Просто мне кажется, что строить конечную сетку легче именно в Слиме (понимаю, что говорю как человек избалованный Горбушкой :)). В Слиме это все более наглядно и привязанно к конечному результату.
В результате можно будет получить законченный комплект программ: Ноутпад для базовых кирпичей, Шейдермен для новых хитрых шейдеров и темплейтов (или модернизации уже написанных, под конкретную задачу), и РАТ для конечной доводки и рендеринга.
Вот вроде и все пока.

PS. Прошу прощения за много слов, но я действительно долго думал :)
 
Сверху