Render.ru

Задавайте вопросы по Houdini!

Уу

Активный участник
Рейтинг
14
Скажите, что за сглаживание включается и выключается плюсом и минусом? Откуда оно берется, где его настройки?
 

Уу

Активный участник
Рейтинг
14
Методом тыка определил что переключается Display As
http://take.ms/OV1iB
А настройки, вроде, в Display Options(горячая клавиша D), Geometry/Level Of Detail
Спасибо. А экспортировать это сглаживание не получается. Экспортировал сглаженный куб, а открылся несглаженный.
 

Уу

Активный участник
Рейтинг
14
Скажите, каким образом можно наложить чеканку на шлем?
Выпуклые борозды по 10 штук, повторяют форму шлема (шлем объемный, сферический, ясное дело), и сужаются в сторону где сходятся.

 

форин

Активный участник
Рейтинг
7
Добрый день! вот такой кодик, не могу понять что и куда нужно прописать чтобы в итоге в функцию добавилось значение позволяющее смещать segment по оси Z ?((

#define TAO 6.28318530718
#define PI 3.14159265359


//build one segment

int segment (float rad_min;
float rad_max;

float start_theta;
float end_theta;
int resolution;) {


float theta;
int pt;
int prim = addprim(geoself(), "poly");
float theta_step = (end_theta - start_theta) / (float)resolution;



// inner radius

for(int step=0; step<resolution+1; step++){
theta = start_theta + (theta_step * step);

pt = addpoint(geoself(), set(cos(theta)*rad_min, sin(theta)*rad_min, 0));
addvertex(geoself(), prim, pt);

}

// outer radius

for(int step=0; step<resolution+1; step++){
theta = end_theta - (theta_step * step);

pt = addpoint(geoself(), set(cos(theta)*rad_max, sin(theta)*rad_max, 0));
addvertex(geoself(), prim, pt);
}

return prim;

}


segment(0.9, 1.25, 0, 0.5, 10);
 

форин

Активный участник
Рейтинг
7
вот спасибо!))))) смешно. нет нужно именно кодом так как задача в результате чуть глобальнее.
 

Tolmach12

Активный участник
Рейтинг
9
И не думал смеяться.
Вот для смещения по z, если я все правильно понял.


#define TAO 6.28318530718
#define PI 3.14159265359


//build one segment

int segment (float rad_min;
float rad_max;

float start_theta;
float end_theta;
int resolution;
float trans_z;) {


float theta;
int pt;
int prim = addprim(geoself(), "poly");
float theta_step = (end_theta - start_theta) / (float)resolution;



// inner radius

for(int step=0; step<resolution+1; step++){
theta = start_theta + (theta_step * step);

pt = addpoint(geoself(), set(cos(theta)*rad_min, sin(theta)*rad_min, trans_z));
addvertex(geoself(), prim, pt);

}

// outer radius

for(int step=0; step<resolution+1; step++){
theta = end_theta - (theta_step * step);

pt = addpoint(geoself(), set(cos(theta)*rad_max, sin(theta)*rad_max, trans_z));
addvertex(geoself(), prim, pt);
}

return prim;

}


segment(0.9, 1.25, 0, 1, 10, 5);
 

Уу

Активный участник
Рейтинг
14
А что нужно: геометрия, текстура, шейдер?
Лучше всего геометрия. Но в крайнем случае любой вариант.
Вот такой референс. Только тут просто - на шлеме ровно идут борозды. А нужно "веером".

 

Tolmach12

Активный участник
Рейтинг
9
Я бы попробовал использовать кривые по ним пускать нужный профиль и в вбд комбинировать с вычитанием, но это так(мысли вслух)
 

Уу

Активный участник
Рейтинг
14
Я бы попробовал использовать кривые по ним пускать нужный профиль и в вбд комбинировать с вычитанием, но это так(мысли вслух)
Я выбираю как и где проще всего выйдет. Если простого и эффективного ничего особо на подхвате нету, то наложу по развертке текстуру и выдавлю, что-то типа такого (ну как и напрашивается решение).
 

форин

Активный участник
Рейтинг
7
Извините за неточность(( как я говорил все чуть сложнее)) хочу получить возможность крутить "кольца" рандомно вокруг оси Z.

#define TAO 6.28318530718
#define PI 3.14159265359


//build one segment

int segment (float rad_min;
float rad_max;

float start_theta;
float end_theta;
int resolution;
float pos_z;) {

float theta;
int pt;
int prim = addprim(geoself(), "poly");
float theta_step = (end_theta - start_theta) / (float)resolution;



// inner radius

for(int step=0; step<resolution+1; step++){
theta = start_theta + (theta_step * step);
pt = addpoint(geoself(), set(cos(theta)*rad_min, sin(theta)*rad_min, pos_z));
addvertex(geoself(), prim, pt);

}

// outer radius

for(int step=0; step<resolution+1; step++){
theta = end_theta - (theta_step * step);
pt = addpoint(geoself(), set(cos(theta)*rad_max, sin(theta)*rad_max, pos_z));
addvertex(geoself(), prim, pt);
}

return prim;


}


//segment(0.9, 1.25, 0, 0.5, 10);

int ring (float min_arc ;
float max_arc ;
float rads_min ;
float rads_max ;
float skip_chance;
int rings_id;
float ring_seed;) {

float theta = 0;
float rand_step;
int seg_num = rings_id;

// circle logik

while (1) {
rand_step = fit(rand(seg_num+ring_seed), 0, 1, min_arc, max_arc);

if (rand(seg_num+9385+ring_seed) > skip_chance) {

segment(rads_min, rads_max, theta, theta+rand_step, 30, fit01(rand(seg_num), 1, 2));

}

theta += rand_step;
seg_num += 1;

if (theta >= TAO)
break;
}

return 1;

}


int num_rings = 10;
float start_rad = 0.5;
float end_rad = 10;
float ring_step = (start_rad - end_rad) / (float)num_rings;
float ring_radius = start_rad;
float rand_seed = 1145;

for(int i=0; i<num_rings; i++) {

ring(0.04, 1, ring_radius, ring_radius * 1.1, 0.7, i, rand_seed);
ring_radius += ring_step;
}
 

форин

Активный участник
Рейтинг
7
И еще вопросик при попытке обратится к @P выдает вот такое вот(( " variable is not accessible in this function: _bound_P "
 
Сверху