немного не про скрипты, но...
так сказать из мелких, но важных полезностей.
не могу понять, почему до сих пор эта фича не включена по умолчанию. сколько лет прошло, а эта фишка тянется чуть ли не с первого блендера. а не включив release confirms вы никогда не получите большой скорости в моделировании, ибо придётся кликать в два раза чаще.
Friday, April 22, 2016
Sunday, September 13, 2015
как в суслике разблурить текстуру
cycles, blender, texture blur filter
в суслике нет простейшей и приввычной фичи как фильтрация текстуры, но это дело можно сэмулировать.путём изменения UV. см картинку. очень мелкий цветной шум оверлеится на ув данные свигая их случайным образом, в результате получается размытие.
в суслике нет простейшей и приввычной фичи как фильтрация текстуры, но это дело можно сэмулировать.путём изменения UV. см картинку. очень мелкий цветной шум оверлеится на ув данные свигая их случайным образом, в результате получается размытие.
Monday, October 20, 2014
Bevel shader
есть очень классная штука - рендерит углы не острыми а сглаженными, то есть геометрия остаётся с острыми углами а на рендере они сглажены - очень добавляет реализма. в максе был для этого плагин fedge, в менталрее есть тоже встроенное дело под эту задачу. а в блендере нету.... :( но народ пораскинул мозгами и родил вот что, жаль пока OSL на GPU не работает, но будем надеяться.
http://blenderartists.org/forum/showthread.php?329295-Bevel-shader
сделать текстовый блок, воткнуть его в нод-едиторе материалов в нормаль шейдера. настройки в принципе более менее понятные.
http://blenderartists.org/forum/showthread.php?329295-Bevel-shader
сделать текстовый блок, воткнуть его в нод-едиторе материалов в нормаль шейдера. настройки в принципе более менее понятные.
void rng_seed(output int rng, int seed) { int chash = seed; if (chash == 0) chash = 1; rng = chash * 30391861; } float rng_uniform(output int rng) { float res = rng / float(2137483647) * 0.5 + 0.5; rng *= 30391861; return res; } void to_unit_disk(float x, float y, output float x_out, output float y_out) { float r, phi; float a = 2.0 * x - 1.0; float b = 2.0 * y - 1.0; if(a > -b) { if(a > b) { r = a; phi = M_PI_4 *(b/a); } else { r = b; phi = M_PI_4 *(2.0 - a/b); } } else { if(a < b) { r = -a; phi = M_PI_4 *(4.0 + b/a); } else { r = -b; if(b != 0.0) phi = M_PI_4 *(6.0 - a/b); else phi = 0.0; } } x_out = r * cos(phi); y_out = r * sin(phi); } void make_orthonormals(vector N, output vector a, output vector b) { if(N[0] != N[1] || N[0] != N[2]) a = cross(vector(1, 1, 1), N); else a = cross(vector(-1, 1, 1), N); a = normalize(a); b = cross(N, a); } vector sample_cos_hemisphere(vector N, float randu, float randv) { vector T, B; make_orthonormals(N, T, B); to_unit_disk(randu, randv, randu, randv); float costheta = sqrt(max(1.0 - randu * randu - randv * randv, 0.0)); return randu * T + randv * B + costheta * N; } shader edge_smooth( int Concave = 1, int Convex = 1, int Samples = 4, int Backfacing = 1, float Mask = 1, float Distance = 0.1, normal Normal = N, output normal outNormal = 0 ) { int i, rng; float f, randu, randv, ray_t, hits = 0; vector ray_P, ray_R; normal hit_normal = N; outNormal = Normal; float hit_dist; float normal_blend; float s_weight = 1/Samples; f = fmod(cellnoise(P*123456.0), 1.0); rng_seed(rng, int(f * 21374647)); if (Mask > 0.5 && raytype("camera")) { for(i = 0; i < Samples; i++) { randu = rng_uniform(rng); randv = rng_uniform(rng); ray_P = P; ray_R = sample_cos_hemisphere(-N, randu, randv); ray_t = Distance; if (Concave == 1) { if(trace(ray_P, -ray_R, "maxdist", ray_t)) { getmessage ("trace", "N", hit_normal); getmessage ("trace", "hitdist", hit_dist); normal_blend = 1-(hit_dist/Distance); outNormal = Normal + (hit_normal*normal_blend); break; } } if (Convex == 1) { if(trace(ray_P, ray_R, "maxdist", ray_t)) { getmessage ("trace", "N", hit_normal); getmessage ("trace", "hitdist", hit_dist); normal_blend = 1-(hit_dist/Distance); if (Backfacing==1 || dot(I, -hit_normal) > 0.0) { outNormal = Normal - (hit_normal*normal_blend); } break; } } } } outNormal = normalize(outNormal); }
Wednesday, July 2, 2014
как отрендерить сусликом один фрейм на рендерферме
мозги у блендерхедов соображают....
у блендера шикарный родной нет рендер, но он не умеет рендерить один фрейм. но это не беда. по природе cycles можно рендерить картинки с большим уровнем шума на разных компах и потом эти картинки смержить в одну хитрым образом. и оно таки работает! нужно только каждую картинку рендерить с новым значением seed в параметрах sampling. то есть:
- анимируем этот параметр
- закидываем в нетрендер
- получаем кучу картинок.
дальше самое интересное. никто так и не написал аддон к блендеру который бы собирал эти картинки в одну. были попытки, но вроде бы не совсем ровные. решение - нужно установить консольную программу Image magick, которая умеет мержить картинки. и запускать её в таком режиме.
convert "path/to/images/*.png" -evaluate-sequence mean "path/to/images/merged_image.png"
пороюсь ещё в поисках более удобного решения, и может быть если дойдут руки накорябую джава софтину (ап: уже накорябал код, осталось интерфейс прикрутить чтобы удобно было, ап: софтина лежит на моём сайте).
аддон для этого дела (не отменяет необходимость имажемажик)
http://adaptivesamples.com/2013/07/22/progressive-animation-render-addon-and-image-stacking/
у блендера шикарный родной нет рендер, но он не умеет рендерить один фрейм. но это не беда. по природе cycles можно рендерить картинки с большим уровнем шума на разных компах и потом эти картинки смержить в одну хитрым образом. и оно таки работает! нужно только каждую картинку рендерить с новым значением seed в параметрах sampling. то есть:
- анимируем этот параметр
- закидываем в нетрендер
- получаем кучу картинок.
дальше самое интересное. никто так и не написал аддон к блендеру который бы собирал эти картинки в одну. были попытки, но вроде бы не совсем ровные. решение - нужно установить консольную программу Image magick, которая умеет мержить картинки. и запускать её в таком режиме.
convert "path/to/images/*.png" -evaluate-sequence mean "path/to/images/merged_image.png"
пороюсь ещё в поисках более удобного решения, и может быть если дойдут руки накорябую джава софтину (ап: уже накорябал код, осталось интерфейс прикрутить чтобы удобно было, ап: софтина лежит на моём сайте).
аддон для этого дела (не отменяет необходимость имажемажик)
http://adaptivesamples.com/2013/07/22/progressive-animation-render-addon-and-image-stacking/
Thursday, March 20, 2014
Monday, May 13, 2013
2.67
вышел новый блендер (2.67), косяков пока не замечено (правда я и юзаю его пару часов всего). немного раздражает лупкат, так и не привык к новому поведению. лишний клик. ну ладно привыкнем. словил себя пару раз на том, что хихикаю как идиот когда юзаю f2. всё-таки блендеровцы умеют удивить. про матчмувинг вообще молчу, до сих пор в себя прийти не могу. опенсорс мля... предсказываю ПОВАЛЬНУЮ миграцию на блендер. самые шустрые то давно уже прыгнули.
и ещё, то ли меня глючит, то ли что, но рендерить стало прилично быстрее, что интернал, что суслик.
и ещё, то ли меня глючит, то ли что, но рендерить стало прилично быстрее, что интернал, что суслик.
Subscribe to:
Posts (Atom)