Text archives Help
- From: leenak@sci.utah.edu
- To: manta@sci.utah.edu
- Subject: [MANTA] r1618 - in trunk: Interface Model/Materials
- Date: Thu, 9 Aug 2007 17:26:19 -0600 (MDT)
Author: leenak
Date: Thu Aug 9 17:26:19 2007
New Revision: 1618
Modified:
trunk/Interface/RayPacket.cc
trunk/Interface/RayPacket.h
trunk/Model/Materials/OrenNayar.cc
trunk/Model/Materials/OrenNayar.h
Log:
tabs have been removed and OrenNayar classes have been properly indentted
Modified: trunk/Interface/RayPacket.cc
==============================================================================
--- trunk/Interface/RayPacket.cc (original)
+++ trunk/Interface/RayPacket.cc Thu Aug 9 17:26:19 2007
@@ -113,35 +113,35 @@
void RayPacket::actualComputeHitPositions()
{
#ifdef MANTA_SSE
- int b = (rayBegin + 3) & (~3);
- int e = rayEnd & (~3);
- if(b == e){
- for(int i = begin(); i < end(); i++){
- for(int j=0;j<3;j++)
- data->hitPosition[j][i] = data->origin[j][i] +
data->direction[j][i] * data->minT[i];
- }
- } else {
- int i = rayBegin;
- for(;i<b;i++){
- for(int j=0;j<3;j++)
- data->hitPosition[j][i] = data->origin[j][i] +
data->direction[j][i] * data->minT[i];
- }
- for(;i<e;i+=4){
- __m128 minT = _mm_load_ps(&data->minT[i]);
- _mm_store_ps(&data->hitPosition[0][i],
_mm_add_ps(_mm_load_ps(&data->origin[0][i]),
_mm_mul_ps(_mm_load_ps(&data->direction[0][i]), minT)));
- _mm_store_ps(&data->hitPosition[1][i],
_mm_add_ps(_mm_load_ps(&data->origin[1][i]),
_mm_mul_ps(_mm_load_ps(&data->direction[1][i]), minT)));
- _mm_store_ps(&data->hitPosition[2][i],
_mm_add_ps(_mm_load_ps(&data->origin[2][i]),
_mm_mul_ps(_mm_load_ps(&data->direction[2][i]), minT)));
- }
- for(;i<rayEnd;i++){
- for(int j=0;j<3;j++)
- data->hitPosition[j][i] = data->origin[j][i] +
data->direction[j][i] * data->minT[i];
- }
- }
+ int b = (rayBegin + 3) & (~3);
+ int e = rayEnd & (~3);
+ if(b == e){
+ for(int i = begin(); i < end(); i++){
+ for(int j=0;j<3;j++)
+ data->hitPosition[j][i] = data->origin[j][i]
+ data->direction[j][i] * data->minT[i];
+ }
+ } else {
+ int i = rayBegin;
+ for(;i<b;i++){
+ for(int j=0;j<3;j++)
+ data->hitPosition[j][i] = data->origin[j][i]
+ data->direction[j][i] * data->minT[i];
+ }
+ for(;i<e;i+=4){
+ __m128 minT = _mm_load_ps(&data->minT[i]);
+ _mm_store_ps(&data->hitPosition[0][i],
_mm_add_ps(_mm_load_ps(&data->origin[0][i]),
_mm_mul_ps(_mm_load_ps(&data->direction[0][i]), minT)));
+ _mm_store_ps(&data->hitPosition[1][i],
_mm_add_ps(_mm_load_ps(&data->origin[1][i]),
_mm_mul_ps(_mm_load_ps(&data->direction[1][i]), minT)));
+ _mm_store_ps(&data->hitPosition[2][i],
_mm_add_ps(_mm_load_ps(&data->origin[2][i]),
_mm_mul_ps(_mm_load_ps(&data->direction[2][i]), minT)));
+ }
+ for(;i<rayEnd;i++){
+ for(int j=0;j<3;j++)
+ data->hitPosition[j][i] = data->origin[j][i]
+ data->direction[j][i] * data->minT[i];
+ }
+ }
#else
- for(int i = rayBegin; i < rayEnd; i++){
- for(int j=0;j<3;j++)
- data->hitPosition[j][i] = data->origin[j][i] + data->direction[j][i]
* data->minT[i];
- }
+ for(int i = rayBegin; i < rayEnd; i++){
+ for(int j=0;j<3;j++)
+ data->hitPosition[j][i] = data->origin[j][i] +
data->direction[j][i] * data->minT[i];
+ }
#endif
flags |= HaveHitPositions;
}
@@ -182,15 +182,15 @@
for(int i = rayBegin; i < rayEnd; ++i) {
// Compute the dot product
Vector normal(getNormal(i));
- side[i] = Dot(normal, getDirection(i));
- data->side[i]=side[i];
+ side[i] = Dot(normal, getDirection(i));
+ data->side[i]=side[i];
if (side[i] <= 0)
setFFNormal(i, normal);
else {
setFFNormal(i, -normal);
side[i]=-side[i];
- data->side[i]=side[i];
- }
+ data->side[i]=side[i];
+ }
}
flags |= HaveFFNormals;
Modified: trunk/Interface/RayPacket.h
==============================================================================
--- trunk/Interface/RayPacket.h (original)
+++ trunk/Interface/RayPacket.h Thu Aug 9 17:26:19 2007
@@ -97,7 +97,7 @@
MANTA_ALIGN(16) Real direction[3][MaxSize];
MANTA_ALIGN(16) Real inverseDirection[3][MaxSize];
MANTA_ALIGN(16) Real minT[MaxSize];
- MANTA_ALIGN(16) Real side[MaxSize]; //To store dot product values
+ MANTA_ALIGN(16) Real side[MaxSize]; //To store dot product
values
MANTA_ALIGN(16) Real image[2][MaxSize];
MANTA_ALIGN(16) Real normal[3][MaxSize];
@@ -162,17 +162,17 @@
// Create a "toplevel" raypacket. You need to call resetHits or
// resetHit for every data element in the ray packet before you
// start intersecting. This will initialize minT and hitMatl.
- RayPacket(RayPacketData& data, PacketShape shape, int rayBegin, int
rayEnd,
- int depth, int flags)
- : data(&data), shape(shape), rayBegin(rayBegin), rayEnd(rayEnd),
- depth(depth), flags(flags)
- {
- }
+ RayPacket(RayPacketData& data, PacketShape shape, int rayBegin, int
rayEnd,
+ int depth, int flags)
+ : data(&data), shape(shape), rayBegin(rayBegin),
rayEnd(rayEnd),
+ depth(depth), flags(flags)
+ {
+ }
// Create a subset of another raypacket
- RayPacket(RayPacket& parent, int rayBegin, int rayEnd)
- : data(parent.data), rayBegin(rayBegin), rayEnd(rayEnd),
- depth(parent.depth), flags(parent.flags)
+ RayPacket(RayPacket& parent, int rayBegin, int rayEnd)
+ : data(parent.data), rayBegin(rayBegin), rayEnd(rayEnd),
+ depth(parent.depth), flags(parent.flags)
{
shape = parent.shape;
if(shape == SquarePacket){
@@ -182,8 +182,8 @@
}
~RayPacket()
- {
- }
+ {
+ }
// Raypacket flags
int getAllFlags() const
@@ -292,9 +292,9 @@
}
Real &getOrigin(int which, int i)
- {
- return data->origin[i][which];
- }
+ {
+ return data->origin[i][which];
+ }
const Real &getOrigin(int which, int i) const
{
return data->origin[i][which];
@@ -308,9 +308,9 @@
}
Real &getDirection(int which, int i)
- {
- return data->direction[i][which];
- }
+ {
+ return data->direction[i][which];
+ }
const Real &getDirection(int which, int i) const
{
return data->direction[i][which];
@@ -324,9 +324,9 @@
}
Real &getInverseDirection(int which, int i)
- {
- return data->inverseDirection[i][which];
- }
+ {
+ return data->inverseDirection[i][which];
+ }
const Real &getInverseDirection(int which, int i) const
{
@@ -366,9 +366,9 @@
flags |= ConstantSigns;
}
VectorT<int, 3> getSigns(int which) const
- {
- return VectorT<int, 3>(data->signs[0][which], data->signs[1][which],
data->signs[2][which]);
- }
+ {
+ return VectorT<int, 3>(data->signs[0][which],
data->signs[1][which], data->signs[2][which]);
+ }
int getSign(int which, int sign) const
{
return data->signs[sign][which];
@@ -443,9 +443,9 @@
#endif
}
Real &getMinT(int which) const
- {
- return data->minT[which];
- }
+ {
+ return data->minT[which];
+ }
void scaleMinT(int which, Real scale)
{
data->minT[which] *= scale;
@@ -571,7 +571,7 @@
}
// No mask
inline __m128 hit(int start, __m128 t, const Material* matl,
- const Primitive* prim, const TexCoordMapper* tex) {
+
const Primitive* prim, const TexCoordMapper* tex) {
__m128 mask = _mm_cmpgt_ps(t, _mm_set1_ps(T_EPSILON));
return hitFinal(start, mask, t, matl, prim, tex);
}
@@ -697,9 +697,9 @@
return Vector(data->texCoords[0][which], data->texCoords[1][which],
data->texCoords[2][which]);
}
VectorT<Real, 2> getTexCoords2(int which) const
- {
- return VectorT<Real, 2>(data->texCoords[0][which],
data->texCoords[1][which]);
- }
+ {
+ return VectorT<Real,
2>(data->texCoords[0][which], data->texCoords[1][which]);
+ }
Real getTexCoords2(int which, int dim)
{
@@ -821,7 +821,7 @@
int rayEnd;
int depth;
int flags;
- Real side[MaxSize]; //To store dot product values
+ Real side[MaxSize]; //To store dot product values
};
typedef MANTA_ALIGN(16) Color::ComponentType
ColorArray[Color::NumComponents][RayPacket::MaxSize];
Modified: trunk/Model/Materials/OrenNayar.cc
==============================================================================
--- trunk/Model/Materials/OrenNayar.cc (original)
+++ trunk/Model/Materials/OrenNayar.cc Thu Aug 9 17:26:19 2007
@@ -105,16 +105,16 @@
Vector shadowdir = shadowRays.getDirection(i);
ColorComponent cos_phi = Dot(shadowdir, normal);
Color light = shadowRays.getColor(i);
- Real theta=acos(cos_theta[i]);
- Real phi=acos(cos_phi);
-
- Real alpha, beta;
- (theta > phi)? alpha = theta : alpha = phi;
- (theta < phi)? beta = theta : beta = phi;
-
- Real max_value;
- (0 < cos(theta-phi))? max_value = cos(theta-phi) : max_value
= 0;
-
+ Real theta=acos(cos_theta[i]);
+ Real phi=acos(cos_phi);
+
+ Real alpha, beta;
+ (theta > phi)? alpha = theta : alpha = phi;
+ (theta < phi)? beta = theta : beta = phi;
+
+ Real max_value;
+ (0 < cos(theta-phi))? max_value = cos(theta-phi) : max_value = 0;
+
for(int k = 0; k < Color::NumComponents;k++)
totalLight[k][i] +=
light[k]*(0.6*cos_phi)*(a+b*max_value*sin(alpha)*tan(beta));
}
Modified: trunk/Model/Materials/OrenNayar.h
==============================================================================
--- trunk/Model/Materials/OrenNayar.h (original)
+++ trunk/Model/Materials/OrenNayar.h Thu Aug 9 17:26:19 2007
@@ -45,18 +45,18 @@
namespace Manta{
class LightSet;
- class OrenNayar : public LitMaterial {
+ class OrenNayar : public LitMaterial {
public:
OrenNayar(const Color& color, const Real sigma);
OrenNayar(const Texture<Color>* colorfn);
- OrenNayar() { };
+ OrenNayar() { };
virtual ~OrenNayar();
virtual void shade(const RenderContext& context, RayPacket& rays) const;
private:
Real a, b;
const Texture<Color>* colortex;
-
+
};
}
- [MANTA] r1618 - in trunk: Interface Model/Materials, leenak, 08/09/2007
Archive powered by MHonArc 2.6.16.