Forum Replies Created
-
AuthorPosts
-
jemCustomer
Hi Yuri,
I was just about to do some iOS work. This update is very timely!
Thank you,
JemJeremy Wernick
jemCustomerHi Mikhail,
I was able to get room reflections to work with the principled shader based on your advice. Thank you. I am using Verge3D 2.7 and I used Cycles world nodes. I did two tests. In the first test, I used a room texture node. In the second test, I used a sky texture node. Both solutions worked. I have attached a screenshot of the room texture node version. The room is lit with an HDRI image. It looks great.Here is the issue that I noticed: the Verge3D GLTF exporter works differently when Blender is in Cycles mode vs Verge3D mode. The world nodes only export when Cycles mode. If I export from Verge mode, the world does not appear. I guess that this behavior makes sense, but it leads to another issue. Some of the tricks that I used in Verge3D mode like environmental lighting do not work in Cycles mode.
What is the best practice for exporting in 2.7? Should I export from Cycles mode if I am using principled shaders and world nodes and export from Verge3D mode when using Verge3D material library materials?
I am not complaining. This looks great! I like having options. I look forward to the updated material library.
Thank you,
JemJeremy Wernick
jemCustomerHi Mikhail,
Your explanation makes sense. This is a better solution than mine. I will start researching equirectangular maps.
Thank you,
JemJeremy Wernick
jemCustomerHi Brian,
I have done this and the results were very nice. My solution was to bake the path animation before export. I followed this procedure on Stack Exchange.
https://blender.stackexchange.com/questions/67238/baking-a-path-animation-for-export-deleting-the-path
For my scene, this worked very well. I could even tweak the nuances of the animation after it was baked from the graph view in Blender.
If there is another solution, I would be happy to hear about it.
Hope this helps,
JemJeremy Wernick
jemCustomerHello Ivan,
Your solution fixed this issue. I do appreciate your team’s rapid responses.Your explanation makes sense. You have given me a new area of the Verge3D system to investigate. Thank you ,
JemJeremy Wernick
jemCustomerHello RMandik,
Can you simplify your geometry? Your .bin file is 70MB. In my experience, that is too large. Your scene is fairly simple. You should be able to reduce the complexity of the mesh dramatically without any noticeable effects. Here are some actions that I would do, if it were my project.
1. Eliminate small features. Your socket head cap screws have chamfers. No one will see these tiny features and they add a lot of weight to the model.
2. Eliminate hidden surfaces. Your square tubing has inside walls. No one will see those inner walls but that data is in your .bin.
3. Eliminate as many holes and bevels and rounds as you can. These round features dive up the face count. I think that your injection molded plastic parts have hidden tiny rounds and spheres on the inside.
4. Use smooth shading and use less vertices. The cylinder shaped objects in your scene all seem to have 32 sides. You can model that same geometry in blender in a more efficient way. Create cylinders with fewer faces (the Blender tool calls them vertices). You can use low-poly meshes with smooth shading and object will still look nice.
5. If your scene data originated in CAD, do all of the steps listed above in CAD before exporting to Blender. It will be easier.
Good luck,
JemJeremy Wernick
jemCustomerI agree. This is awesome. I need to try something like this.
You might try turning on LMZA compression. It will shrink your .bin file from about 23 MB to 3 MB. The scene will boot faster for users that don’t have the scene data cached.
-JemJeremy Wernick
jemCustomerHi Mikhail,
I have to use whatever CAD system that my customers use. This includes SolidWorks, Creo, Inventor and Fusion 360.
I have found that it is very important to simplify and defeature customer CAD models for web use and it is easiest to preform these tasks in the native CAD system.
-JemJeremy Wernick
jemCustomerRather than try to make my technique work, I think that I will use the tween() function that the puzzle logic uses. Rather than hard-coding coordinates into the JavaScript, I use empties in the Blender scene as the sources of position data. Here is my new code:
var cameraPositions = { "FRONT_VIEW" : { "cameraPositionObjName" : "FRONT_CAMERA_POSITION", "cameraTargetObjName" : "OTHER_CAMERA_TARGET"}, "RIGHT_VIEW" : { "cameraPositionObjName" : "RIGHT_CAMERA_POSITION", "cameraTargetObjName" : "OTHER_CAMERA_TARGET" } } var cameraPos = v3dApp.scene.getObjectByName(cameraPositions[view].cameraPositionObjName).position; var targetPos = v3dApp.scene.getObjectByName(cameraPositions[view].cameraTargetObjName).position; v3dApp.controls.tween(cameraPos, targetPos, 0.0) }
Thanks again,
JemJeremy Wernick
jemCustomerI saw that development too. Your approach is reasonable.
I might continue to experiment with it so that I can be prepared if and when this API is standardized.
Thank you,
JemJeremy Wernick
jemCustomerThis is an amazing looking material! I did not think that WebGL and GLSL could produce a result like this in real time.
The whole Soft8soft team is very impressive.
-JemJeremy Wernick
jemCustomerHi Yuri,
I will have to keep this new behavior in mind when I develop new projects. For my legacy projects, I added the line:
myParentObject.disableChildRendering = true;
to my code and everything works as it did before.
Thank you for the explanation and suggestions,
JemJeremy Wernick
jemCustomerHello Mikhail,
Thank you very much for this amazing example. I am still trying to understand everything that you did in your example. I am not very good with the shader node system but I will work hard to learn.In your example, I see that the material is mapped with the global coordinate system rather than the object’s local coordinate system. That is very smart. I also see that you are using the object’s normals to set the rotational transformations for the material to the object’s other faces. This is where I get lost, but I will try to understand it.
Thank you!
-JemJeremy Wernick
jemCustomerI have seen this before when the v3d.js engine in the application directory is out of date. This can happen if your application was built in a prior version of Verge3D and moved to a new version. If this is true, there should be an update button in your Verge3D application manager next to the application. You should also open the Blender file an export a fresh gltf/bin in the new version.
Hope this helps,
JemJeremy Wernick
jemCustomerWow! It is easy to change the loader graphics in 2.2!
For my test, I used an animated gif and I did not want it to spin. Here are the steps:
1. Update you app’s v3d.js engine to 2.2 if it is not already.
2. Place your graphic in the app directory.
3. Edit the app’s main js file. You will see a line that says new v3d.SimplePreloader … . Edit that line.Here is mine:
var player = new V3DPlayer('container', null, new v3d.SimplePreloader({ container: 'container' , imageURL:'my_logo.gif', imageRotationSpeed: 0}));
All of the available parameters are listed in the user manual.
Thanks,
JemJeremy Wernick
-
AuthorPosts