Revision | 16202daaf3a0452c6d0d28cb1381aeba50ce73bf (tree) |
---|---|
Time | 2018-07-09 06:45:16 |
Author | Pavel Rojtberg <rojtberg@gmai...> |
Commiter | Pavel Rojtberg |
Samples: VolumeTex - fix bounds computations
@@ -168,13 +168,6 @@ | ||
168 | 168 | } |
169 | 169 | Ogre::Real ThingRenderable::getSquaredViewDepth(const Ogre::Camera* cam) const |
170 | 170 | { |
171 | - Ogre::Vector3 min, max, mid, dist; | |
172 | - | |
173 | - min = mBox.getMinimum(); | |
174 | - max = mBox.getMaximum(); | |
175 | - mid = ((min - max) * 0.5) + min; | |
176 | - dist = cam->getDerivedPosition() - mid; | |
177 | - | |
178 | - return dist.squaredLength(); | |
171 | + return (cam->getDerivedPosition() - mBox.getCenter()).squaredLength(); | |
179 | 172 | } |
180 | 173 |
@@ -27,11 +27,11 @@ | ||
27 | 27 | |
28 | 28 | VolumeRenderable::VolumeRenderable(size_t nSlices, float size, const String &texture): |
29 | 29 | mSlices(nSlices), |
30 | - mSize(size), | |
30 | + mSize(size/2), | |
31 | 31 | mTexture(texture) |
32 | 32 | { |
33 | - mRadius = sqrtf(size*size+size*size+size*size)/2.0f; | |
34 | - mBox = Ogre::AxisAlignedBox(-size, -size, -size, size, size, size); | |
33 | + mBox = Ogre::AxisAlignedBox(-mSize, -mSize, -mSize, mSize, mSize, mSize); | |
34 | + mRadius = mBox.getMaximum().length(); | |
35 | 35 | |
36 | 36 | // No shadows |
37 | 37 | setCastShadows(false); |
@@ -132,9 +132,9 @@ | ||
132 | 132 | float zcoord = -((float)x/(float)(mSlices-1) - 0.5f); |
133 | 133 | // 1.0f .. a/(a+1) |
134 | 134 | // coordinate |
135 | - vertices[x*4*elemsize+y*elemsize+0] = xcoord*(mSize/2.0f); | |
136 | - vertices[x*4*elemsize+y*elemsize+1] = ycoord*(mSize/2.0f); | |
137 | - vertices[x*4*elemsize+y*elemsize+2] = zcoord*(mSize/2.0f); | |
135 | + vertices[x*4*elemsize+y*elemsize+0] = xcoord*mSize; | |
136 | + vertices[x*4*elemsize+y*elemsize+1] = ycoord*mSize; | |
137 | + vertices[x*4*elemsize+y*elemsize+2] = zcoord*mSize; | |
138 | 138 | // normal |
139 | 139 | vertices[x*4*elemsize+y*elemsize+3] = 0.0f; |
140 | 140 | vertices[x*4*elemsize+y*elemsize+4] = 0.0f; |
@@ -232,13 +232,6 @@ | ||
232 | 232 | } |
233 | 233 | Ogre::Real VolumeRenderable::getSquaredViewDepth(const Ogre::Camera* cam) const |
234 | 234 | { |
235 | - Ogre::Vector3 min, max, mid, dist; | |
236 | - | |
237 | - min = mBox.getMinimum(); | |
238 | - max = mBox.getMaximum(); | |
239 | - mid = ((min - max) * 0.5) + min; | |
240 | - dist = cam->getDerivedPosition() - mid; | |
241 | - | |
242 | - return dist.squaredLength(); | |
235 | + return (cam->getDerivedPosition() - mBox.getCenter()).squaredLength(); | |
243 | 236 | } |
244 | 237 |