[x3d-public] Should Appearance material be an SFNode (current) or MFNode?
Michalis Kamburelis
michalis.kambi at gmail.com
Mon Apr 26 04:05:00 PDT 2021
"Shape.appearance" is, always was, and should be, SFNode, IMHO.
I can think of some possible uses of "Shape.appearance" being MFNode
(fallback materials), but it would be a big complication (both in spec
and in implementation), not justified IMHO.
Regards,
Michalis
pt., 16 kwi 2021 o 08:54 John Carlson <yottzumm at gmail.com> napisał(a):
>
> Indeed, Appearance material is an SFNode, not an MFNode in X3DV4. What do you think?
>
> On 4/16/21 1:17 AM, John Carlson wrote:
>
> Traceback:
>
> Found the following error with my ~/x3dschema JSON parse test, done by running `base validate.sh`, results in javaresults.txt, which is filtered (also need to filter "node_modules") here: https://github.com/coderextreme/x3dschema/blob/master/jsonparseresults.txt Cleaned up results here:
>
> json-parse json Expected a ':' after a key at 196859 [character 37 line 216] x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/SingleAudio.json
> json-parse json Expected a ':' after a key at 7359 [character 31 line 198] x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/SplitChannels.json
> json-parse json Expected a ':' after a key at 287624 [character 37 line 270] x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/SpatialAudioCameraAnimation.json
>
>
> Note that there are two Material objects in SplitChannels.json, so -material should probably be an array. Will check XML.
>
> SplitChannels.x3d excerpt:
>
> <Transform DEF='volumeRight' rotation='1 0 0 -0.5' scale='10 10 10' translation='0 -10 0'>
> <Shape>
> <Appearance>
> <Material diffuseColor='0.345 0.345 0.882' transparency='0'/>
> <Material ambientIntensity='0.0933' diffuseColor='1 1 1' emissiveColor='0 0 0' shininess='0.51' specularColor='0.46 0.46 0.46'/>
> </Appearance>
> <Text solid='false' string='Right Channel Volume'>
> <FontStyle family=''Times'' horizontal='true' justify='BEGIN' leftToRight='true' size='1' spacing='1' style='BOLD' topToBottom='true'/>
> </Text>
> </Shape>
> </Transform>
>
>
> The following will show the two Material Appearances in all three .x3d files.
>
> x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound$ egrep 'Appearance|Material' *.x3d
>
> Will check for error/warning/development. An allied file in same folder has a warning, but none in these .x3d files that I can tell.
>
> Will check web. https://x3dgraphics.com/examples/X3dForAdvancedModeling/AudioSpatialSound/SplitChannelsIndex.html looks like above.
>
>
> Will check X3DV4 schema:
>
> <xs:element name="Appearance">
> <xs:annotation>
> <xs:appinfo>
> [snip]
> <xs:element name="material" type="SFNode" fixed="inputOutputField" default="X3DMaterialNode"/>
>
> I'm reading this that there shouldn't be more that one Material, otherwise, material would be an MFNode.
>
> Running the XML files through X3D validator: All three .x3d files fail
>
> Don't forget to validate before checking in. I'm aware these files are under development. My best guess is we'll have to wait for a new copy of the X3D validator and schema?
>
> If we make -material an array, this will be a pretty significant change, basically affecting practically everything. It's easy for XML, and we haven't defined X3D JSON in a standard, but in the future, I recommend changing SFNode to MFNode with care.
>
> jsonlint errors follow:
>
> SingleAudio.json
> Error: Parse error on line 207:
> ... { "Material":
> -----------------------^
> Expecting 'STRING', got '{'
> at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)
> at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)
> at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)
> at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)
> at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)
> at Module._compile (internal/modules/cjs/loader.js:1138:30)
> at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
> at Module.load (internal/modules/cjs/loader.js:986:32)
> at Function.Module._load (internal/modules/cjs/loader.js:879:14)
> at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
> SpatialAudioCameraAnimation.json
> Error: Parse error on line 261:
> ... { "Material":
> -----------------------^
> Expecting 'STRING', got '{'
> at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)
> at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)
> at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)
> at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)
> at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)
> at Module._compile (internal/modules/cjs/loader.js:1138:30)
> at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
> at Module.load (internal/modules/cjs/loader.js:986:32)
> at Function.Module._load (internal/modules/cjs/loader.js:879:14)
> at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
> SplitChannels.json
> Error: Parse error on line 189:
> ... { "Material":
> -----------------------^
> Expecting 'STRING', got '{'
> at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)
> at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)
> at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)
> at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)
> at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)
> at Module._compile (internal/modules/cjs/loader.js:1138:30)
> at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
> at Module.load (internal/modules/cjs/loader.js:986:32)
> at Function.Module._load (internal/modules/cjs/loader.js:879:14)
> at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
More information about the x3d-public
mailing list