{"action":"created","issue":{"url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models/issues/13","repository_url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models","labels_url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models/issues/13/labels{/name}","comments_url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models/issues/13/comments","events_url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models/issues/13/events","html_url":"https://github.com/KhronosGroup/glTF-Sample-Models/issues/13","id":196246192,"number":13,"title":"Box.glb sets up uniforms that are never used.","user":{"login":"mre4ce","id":15386383,"avatar_url":"https://avatars.githubusercontent.com/u/15386383?v=3","gravatar_id":"","url":"https://api.github.com/users/mre4ce","html_url":"https://github.com/mre4ce","followers_url":"https://api.github.com/users/mre4ce/followers","following_url":"https://api.github.com/users/mre4ce/following{/other_user}","gists_url":"https://api.github.com/users/mre4ce/gists{/gist_id}","starred_url":"https://api.github.com/users/mre4ce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mre4ce/subscriptions","organizations_url":"https://api.github.com/users/mre4ce/orgs","repos_url":"https://api.github.com/users/mre4ce/repos","events_url":"https://api.github.com/users/mre4ce/events{/privacy}","received_events_url":"https://api.github.com/users/mre4ce/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2016-12-17T22:22:17Z","updated_at":"2016-12-19T13:39:47Z","closed_at":null,"body":"I've seen this on other models as well but Box.glb sets up the uniforms \"u_shininess\" and \"u_specular\" while they are never actually used. When you lookup these uniforms in the fragment program you won't find them. Not the end of the world but it would be nice if the sample models were nice and clean.\r\n\r\nIt would also be nice if the JSON was laid out in expected parse order for super high performance parsing. The DOM-style JSON parser used for KhronosGroup/Vulkan-Samples is already faster than rapidjson but it is even faster if the JSON is laid out in the order it is parsed."},"comment":{"url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models/issues/comments/267966019","html_url":"https://github.com/KhronosGroup/glTF-Sample-Models/issues/13#issuecomment-267966019","issue_url":"https://api.github.com/repos/KhronosGroup/glTF-Sample-Models/issues/13","id":267966019,"user":{"login":"javagl","id":5597569,"avatar_url":"https://avatars.githubusercontent.com/u/5597569?v=3","gravatar_id":"","url":"https://api.github.com/users/javagl","html_url":"https://github.com/javagl","followers_url":"https://api.github.com/users/javagl/followers","following_url":"https://api.github.com/users/javagl/following{/other_user}","gists_url":"https://api.github.com/users/javagl/gists{/gist_id}","starred_url":"https://api.github.com/users/javagl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/javagl/subscriptions","organizations_url":"https://api.github.com/users/javagl/orgs","repos_url":"https://api.github.com/users/javagl/repos","events_url":"https://api.github.com/users/javagl/events{/privacy}","received_events_url":"https://api.github.com/users/javagl/received_events","type":"User","site_admin":false},"created_at":"2016-12-19T13:39:47Z","updated_at":"2016-12-19T13:39:47Z","body":"(I had seen the header, but did not yet work through the documentation and benchmark setups that are explained there. From a quick glance, I did not see a comparison that was related to the \"parse order\" in any way (which, as I said, does not seem to make sense for a DOM parser), but I'll have to review this more thoroughly)\r\n\r\nRegarding the unused uniforms: I added some debug statements and went through the sample models. Here is a (hopefully complete) list of the sample models and their unused uniforms:\r\n\r\n    Loading /BrainStem/glTF/BrainStem.gltf\r\n    Unused: technique0 u_ambient\r\n    Unused: technique0 u_specular\r\n    Loading /BoxWithoutIndices/glTF/BoxWithoutIndices.gltf\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /BoxTextured/glTF/BoxTextured.gltf\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /BoxSemantics/glTF/BoxSemantics.gltf\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /BoxAnimated/glTF/BoxAnimated.gltf\r\n    Unused: technique0 u_light0Color\r\n    Loading /Box/glTF/Box.gltf\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /2CylinderEngine/glTF/2CylinderEngine.gltf\r\n    Loading /VC/glTF/VC.gltf\r\n    Loading /RiggedSimple/glTF/RiggedSimple.gltf\r\n    Unused: technique0 u_ambient\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /RiggedFigure/glTF/RiggedFigure.gltf\r\n    Unused: technique0 u_ambient\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /ReciprocatingSaw/glTF/ReciprocatingSaw.gltf\r\n    Loading /Monster/glTF/Monster.gltf\r\n    Unused: technique0 u_ambient\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /GearboxAssy/glTF/GearboxAssy.gltf\r\n    Loading /Duck/glTF/Duck.gltf\r\n    Unused: technique0 u_ambient\r\n    Loading /CesiumMilkTruck/glTF/CesiumMilkTruck.gltf\r\n    Unused: technique1 u_shininess\r\n    Unused: technique1 u_specular\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /CesiumMan/glTF/CesiumMan.gltf\r\n    Unused: technique0 u_ambient\r\n    Unused: technique0 u_shininess\r\n    Unused: technique0 u_specular\r\n    Loading /Buggy/glTF/Buggy.gltf\r\n\r\n(If no \"unused\" ones are listed, then everything is fine). Again, I think that all this depends on the [`commonProfileShaders.cpp`](https://github.com/KhronosGroup/COLLADA2GLTF/blob/5cbbe4674c16aa05cc613d8b7c50f4557b5af611/shaders/commonProfileShaders.cpp#L854), so might in fact rather be an issue of COLLADA2GLTF (and not directly of the sample models). \r\n\r\n(BTW: I think that the `commonProfileShaders.cpp` is already rather complex, with several classes and deep nesting - it could benefit from some cleanups and refactoring, IMHO...)\r\n\r\n(BTW2: Here are two issues: The unused uniforms, and the JSON order. You also opened https://github.com/KhronosGroup/glTF-Sample-Models/issues/15 , which also mentions *two* issues, namely the uniforms and the wrong extensions. It would be nice if each issue only contained one issue. Otherwise, it is not clear *when* one issue can be closed)\r\n\r\n"}}
{"actor":{"display_login":"javagl"}}