Each Texture object has the following properties:
j0 = trunc(v - 0.5)
i1 = i0 + 1
j1 = j0 + 1
a = frac(u - 0.5)
b = frac(v - 0.5)
T' = (1-a)*(1-b)*Ti0j0 + a*(1-b)*Ti1j0 + (1-a)*b*Ti0j1 + a*b*Ti1j1
i1 = trunc(u - 0.5) | i2 = i1 + 1 | i3 = i2 + 1 | i0 = i1 - 1 |
j1 = trunc(v - 0.5) | j3 = j2 + 1 | j2 = j1 + 1 | j0 = j1 - 1 |
a = frac(u - 0.5) | |||
b = frac(v - 0.5) |
T' = f(1+a) * f(1+b) * Ti0j0 + f(a) * f(1+b) * Ti1j0 + f(1-a) * f(1+b) * Ti2j0 + f(2-a) * f(1+b) * Ti3j0 +
f(1+a) * f(b) * Ti0j1 + f(a) * f(b) * Ti1j1 + f(1-a) * f(b) * Ti2j1 + f(2-a) * f(b) * Ti3j1 +
f(1+a) * f(1-b) * Ti0j2 + f(a) * f(1-b) * Ti1j2 + f(1-a) * f(1-b) * Ti2j2 + f(2-a) * f(1-b) * Ti3j2 +
f(1+a) * f(2-b) * Ti0j3 + f(a) * f(2-b) * Ti1j3 + f(1-a) * f(2-b) * Ti2j3 + f(2-a) * f(2-b) * Ti3j3
Note that as of Java 3D 1.5, the texture width and height are no longer required to be an exact power of two. However, not all graphics devices supports non-power-of-two textures. If non-power-of-two texture mapping is unsupported on a particular Canvas3D, textures with a width or height that are not an exact power of two are ignored for that canvas. @see Canvas3D#queryProperties
|
|
|
|
|
|