Example #1
0
        public void modify(ShadingState state)
        {
            Point3 p = state.transformWorldToObject(state.getPoint());
            p.x *= size;
            p.y *= size;
            p.z *= size;
            Vector3 normal = state.transformNormalWorldToObject(state.getNormal());
            double f0 = f(p.x, p.y, p.z);
            double fx = f(p.x + .0001, p.y, p.z);
            double fy = f(p.x, p.y + .0001, p.z);
            double fz = f(p.x, p.y, p.z + .0001);

            normal.x -= scale * (float)((fx - f0) / .0001);
            normal.y -= scale * (float)((fy - f0) / .0001);
            normal.z -= scale * (float)((fz - f0) / .0001);
            normal.normalize();

            state.getNormal().set(state.transformNormalObjectToWorld(normal));
            state.getNormal().normalize();
            state.setBasis(OrthoNormalBasis.makeFromW(state.getNormal()));
        }
Example #2
0
        public void modify(ShadingState state)
        {
            Point3 p = state.transformWorldToObject(state.getPoint());

            p.x *= size;
            p.y *= size;
            p.z *= size;
            Vector3 normal = state.transformNormalWorldToObject(state.getNormal());
            double  f0     = f(p.x, p.y, p.z);
            double  fx     = f(p.x + .0001, p.y, p.z);
            double  fy     = f(p.x, p.y + .0001, p.z);
            double  fz     = f(p.x, p.y, p.z + .0001);

            normal.x -= scale * (float)((fx - f0) / .0001);
            normal.y -= scale * (float)((fy - f0) / .0001);
            normal.z -= scale * (float)((fz - f0) / .0001);
            normal.normalize();

            state.getNormal().set(state.transformNormalObjectToWorld(normal));
            state.getNormal().normalize();
            state.setBasis(OrthoNormalBasis.makeFromW(state.getNormal()));
        }