Tested on: - FreeWRL 1.22.13 (on Debian testing 32-bit, NVidia GeForce GPU). - BS Contact - Instant Player - Octaga Player - view3dscene (version from snapshots --- essentially view3dscene 3.13.0) (on Debian testing 32-bit, NVidia GeForce GPU). view3dscene is Michalis' own browser, so the implementation 100% matches the reference images and all proposed clarifications/solutions mentioned on this page. Results: FreeWRL: 1. MultiTexture.source seems ignored by FreeWRL. MultiTexture.mode = SUBTRACT is weird (not sure what is does). MultiTexture.mode = SELECTARG2 seems equal to MultiTexture.mode = SELECTARG1. Other MultiTexture.mode values seem Ok. 2. All incorrect. Not sure how FreeWRL interprets MultiTexture.mode = BLENDxxx, it doesn't seem to follow spec or match reference images. 3. Ok. (Note: whether the 1st and 2nd cube should be yellowish or not is a separate question, see #section_default_texture_mode) 4. Ok. 5. All incorrect. It seems FreeWRL doesn't handle MultiTexture.function. 6. Mostly incorrect. It seems FreeWRL doesn't honor the multi-texture transformation properly, it also makes warnings "not enough textures in MultiTextureTransform...." instead of following the spec that says when identity matrices are assumed for transformation. Possibly caused by spec problem 6. below. 7. FreeWRL doesn't support CADGeometry component. Results are incorrect (you see nothing), but that's acceptable since the console warns that CADGeometry level support is 0 (none) in FreeWRL. 8. FreeWRL doesn't seem to support MovieTexture (although it doesn't complain when we request Texturing component at level 3, so it should support MovieTexture). Also makes warnings "not enough textures in MultiTextureTransform....", so probably would also exhibit problems from test 6. 9. FreeWRL seems to never mix texture color with Material.diffuseColor (for both RGB (correct) and grayscale (incorrect) textures), and always mixes texture color with Color node (for both RGB (incorrect) and grayscale (correct) textures). So it is incorrect according to existing X3D spec, it is also incorrect according to proposed #section_default_texture_mode"always modulate" change. 10. Incorrect, but that's understandable: this test uses proposed (not part of X3D spec) extension to specify separate modes and sources for RGB/Alpha, see #section_proposed_mode and #proposed_source 11. Like 10. BS Contact: 1. Almost Ok except MultiTexture.mode = SUBTRACT column. Looks like BS Contact subtracts only RGB channel, does not touch alpha. This contradicts our proposed clarifications. The X3D spec is ambigous about this, see problem 4. 2. Ok. 3. Ok except 3rd cube. It should look different, not equal to 4th. (Note: whether the 1st and 2nd cube should be yellowish or not is a separate question, see #section_default_texture_mode) 4. Incorrect. Texture transformation is not applied. 5. Ok except 2nd and 3rd cube. It looks like BS Contact supports MultiTexture.function (COMPLEMENT and ALPHAREPLICATE), but the COMPLEMENT support is buggy. 6. Mostly incorrect, various problems (but *different* than e.g. FreeWRL problems). 7. BS Contact doesn't seem to support CADGeometry component. 8. Incorrect. MovieTexture support is weird (movie seems played in a separate window instead of as a texture). Also, transformation of squirrel texture is wrong. 9. Inccorect. RGB texture replaces Material.diffiseColor (correct). Grayscale texture is replaced by Material.diffuseColor (incorrect and weird). RGB texture modulates with Color node (incorrect according to spec). Grayscale texture modulates Color node (correct). 10. Like FreeWRL: testing this is not fair, as the construction used there is our proposal, not part of any X3D spec. 11. Like 10. Instant Player: 1. Incorrect, many problems. MultiTexture.source does something weird (it changes the result, but I don't know how and why). Various MultiTexture.mode values incorrectly handled. 2. All incorrect. 3. Incorrect (3rd and 4th cube). Not really sure what is happening there, why the effet is like it is. 4. Ok. 5. Ok except 2nd and 3rd, it doesn't seem to apply MultiTexture.function at the right place. This is actually similar to BS Contact, but definitely contradicts the spec. 6. Various problems. Fails, but *differently* than BS Contact and FreeWRL. 7. Result equal to 6. That's good, this means that CADGeometry quads correctly work with multi-texturing. But, since results of test 6. were not correct, results for test 7. show exactly the same problems. 8. MovieTexture does not seem supported, at least for multi-texturing. 9. Equal to BS Contact result for this test, which means incorrect (but at least, this time, consistent with BS Contact). 10. Like FreeWRL: testing this is not fair, as the construction used there is our proposal, not part of any X3D spec. 11. Like 10. Octaga Player: 1. Incorrect, many problems. 2. Incorrect 2nd, 3rd and 4th quads. So only BLENDDIFFUSEALPHA is correct. 3. Ok. 4. Ok. 5. Incorrect. Looks like COMPLEMENT negates the alpha as well, which may be caused by specification problem 5. 6. Incorrect, various problems. 7. Equal to 6. Which is good, it means CADGeometry quads work with multi-texturing. But, since result 6. was incorrect, this is incorrect too. 8. MovieTexture not supported? At least for multi-texturing. 9. RGB texture overrides Material.diffuseColor (correct). Grayscale texture is overridden by Material.diffuseColor (incorrect and weird, seems to match BS Contact). RGB texture overrides Color node (correct; this is the only browser that does this correctly, I think). Grayscale texture modules with Color node (correct). 10. Like FreeWRL: testing this is not fair, as the construction used there is our proposal, not part of any X3D spec. 11. Like 10.