float sum = 0:
forCint i - 0: i < 12; 1++) sum +- noiseO:
return sum - 6.0:
}
private:

float* noiseTable: // array of noise values // массив значений шума

unsigned char * index: // Pseudorandom indices // псевдослучайные индексы

float mySpline(float x) // used for marble // используется для мрамора

{
if(x <-0.4) return 0.15 + 2.857 * SQR(x + 0.75): else if(x < 0.4) return 0.95 - 2.8125 * SQR(x); else return 0.26 + 2.666 * SQR(x - 0.7):
}
float latticeNoise(int i. int j. int k)

{ // return PR noise value on an integer lattice // возвращаем значение псевдослучайного шума // на целочисленную решетку

♦define PERM(x) index[(x) & 255]
♦define INDEXCix. iy. iz) PERM( (ix) + PERM(Ciy) + PERM(iz))) return noiseTable[INDEX(i.j.k)];
}

// end of Noise class // конец класса Noise

Приложение В. Некоторые полезные классы и служебные подпрограммы В5. Некоторые классы, полезные при трассировке лучей

//тттттеш Pointciuster class emmmmoom

class PointCluster{
public:

// holds array of points for the bounding hull of a shape // содержит массив точек для граничной оболочки формы

int num:
Point3* pt:
PointClusterO {num - 0: pt - NULL:}

PointClusterCint n) // make a cluster of n points // создаем кластер из n точек

{
pt - new Point3[n]; assert(pt): num - n;
}
}:
i/emmmmmmm sphereinfo oommmmm
class SphereInfo{

// holds the center and radius of a sphere // содержит центр и радиус сферы public:

Point3 center:
float radSq:
void settfloat x. float y. float z. float rsq) {
center.set(x.y.z); radSq - rsq:
}
}:

//mmmmmmm Cuboid тоттетотт

class Cuboid{
// holds six border values of a cuboid

// содержит шесть граничных значений кубоида

public:
float left. top. right, bott. front, back:
void set(float 1. float t. float r. float b. float f. float bk)
{
left - 1: top - t: right - r: bott - b: front - f: back - bk:} void set(Cuboid& c) {

left - cleft: top - c.top: right - cright: bott - сbott: front - с front: back - с back:

}
}:
//mmmmmm Ray ommmmmemm
class Ray{ public:
Point3 start:
Vector3 dir:
int recurseLevel:

В5, Некоторые классы, полезные при трассировке лучей


⇐ Предыдущая| |Следующая ⇒