本文整理汇总了C++中vec3::mult方法的典型用法代码示例。如果您正苦于以下问题:C++ vec3::mult方法的具体用法?C++ vec3::mult怎么用?C++ vec3::mult使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vec3
的用法示例。
在下文中一共展示了vec3::mult方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: traceray
vec3 traceray(const vec3 &origin, const vec3 &dir, int depth)
{
if (depth == 0)
return vec3();
vec3 fcolor = bgcolor;
int obj;
float t;
if ((obj = intersect(origin, dir, t)) != -1) {
fcolor = ambient.mult(myobj_mat[obj].color);
int light_size = sizeof(light_pos) / sizeof(vec3);
int obj_size = sizeof(mysph_pos) / sizeof(vec3);
vec3 pos = origin + (dir * t);
for (int i = 0; i < light_size; i++) {
vec3 lightray = normalize(light_pos[i] - pos);
float temp;
if (intersect(pos, lightray, temp) == -1) {
if (myobj_mat[obj].kd > 0) {
vec3 nor = normalize(pos - mysph_pos[obj]);
fcolor = fcolor + ((light_color[i] * (nor.dot(lightray)) * myobj_mat[obj].kd).mult(myobj_mat[obj].color));
}
if (myobj_mat[obj].ks > 0) {
vec3 refDir = mirrorDir(pos, lightray, obj) * (-1);
fcolor = fcolor + ((light_color[i] * (dir.dot(refDir)) * myobj_mat[obj].ks).mult(myobj_mat[obj].color));
}
}
if(myobj_mat[obj].kr > 0)
fcolor = fcolor + ((traceray(pos, mirrorDir(pos, dir, obj), depth - 1) * myobj_mat[obj].kr).mult(myobj_mat[obj].color));
}
}
// note that, before returning the color, the computed color may be rounded to [0.0, 1.0].
fcolor = clamp(fcolor);
return fcolor;
}
示例2:
}
vec3 dappy::math::operator*(vec3 ref, const vec3 & def)
{
return ref.mult(def);