Render.ru

ColorRamp в Entropy - решение

Nitisara

Знаток
Рейтинг
33
#1
Столкнулся с проблемой, что рамп для рендермана не рендерится в Энтропии.
Прочитал в форуме, что советуется избегать функции spline из-за несоответствия ее параметров с рендерманом.
После ознакомления с документацией по Энтропии стало понятно, что ей просто необходим сплайн с постоянно неубывающей параметризацией. При этом функция spline работает корректно и поддерживает все параметры рендермана (проверил, и это также описано в документации по Энтропии).
Таким образом, удалось исправить несоответствие, установив параметр всех остальных цветовых нодов рампа в "1" и обеспечив, таким образом, требуемую неубывающую параметризацию (в противном случае происходит перепад с "1" на "0" после последнего используемого цвета рампа).
(Если кто не знает - доступ ко всем 32 цветам рампа в слиме - ctrl+dbl_click).
 
#2
Привет монстрам. Добро пожаловать в наше маленькое community.

А не совсем понял, какую именно ошибку исправляет твой метод. Основная проблема, как я её вижу, состоит в том, что в Entropy (Entropy 3.0 Release 4 intelnt (Oct 23 2001 14:19:28)) у функции spline нет метода solvecatrom, который используется Slim'ом для показа сплайнов, рампов и прочего.

Я попробовал, у меня (как и раньше) рамп не показался, вернее, показался полностью чёрным (вызов spline("solvecatrom") вернул нули).

Может, оная функция появилась в Entropy 3.1?
 

Nitisara

Знаток
Рейтинг
33
#3
В релизе 3.1 тоже возвращает нуль и дает черный рамп. До тех пор, пока не сделать вышеуказанное. К сожалению, я не знаком с версией (и особенно ее документацией) 3.0, но в 3.1 в разделе <B> "API Specefication > Shading Language > Built-in Library Functions"</B> в описании функции <B>spline</B> говорится:
Valid basis names are: "catmull-rom", "bezier", "bspline", "hermite", or "linear". If no basis name is supplied, "catmull-rom" is used. The number of data values must be 4n + 3 for Bezier splines, and 4n + 2 Hermite splines. Any number of knots may be used for Catmull-Rom or Linear splines, but the number of knots must be  4. To maintain consistency with the other spline types, linear splines will ignore the first and last data value, interpolating piecewise-linearly between y0 and yn.
The following basis names are also supported: "solvecatmull-rom", "solvebezier",
"solvebspline", "solvehermite", "solvelinear". For any of the "solve"
spline types, whose data values may only be float, the spline’s inverse is computed.
That is, spline() returns the lookup value for which the spline’s result would be x.
Results are undefined and likely unstable if the knots do not determine a monotonically increasing spline.
 
#4
1. Они ввели в 3.1 "solvecatrom"
2. Который работает, если проинициализировать весь сплайн, как советует Нитисара.

УРА!
 
Сверху