Forum Replies Created
@ballard, I can’t think of a solution to the cross-section issue. I think that all of the techniques listed in the thread above will cause the cross-section of the spring to ovalize (since they are all a way of z-scaling). There are two techniques that I can think of that may partially hide this issue.
1. Use small displacements. I used +/-25%. Using smaller displacements requires less scaling and causes less distortion.
2. Hide the cut ends of the wire. The cut ends are where the issue is most obvious. If this was a coil for a car, this wouldn’t be too difficult. The spring would be held captive by an upper and a lower spring seat. The spring seat would partially obscure the cut ends
Since we are using Verge3D, there is another way to do this. Rigging and shape keys take a lot of runtime computation. Why not use puzzles? Use the “Animate parameter from” puzzle to drive the z-scale of the spring.
- This reply was modified 1 month ago by jem.
That was a great video tutorial. I like your compositing technique with the gaussian blur and infill. Also, I always forget the filmic color mode setting!
And, I did not know that UVPackmaster existed. Thanks for the tips!
Yep. That is an odd setup for Blender. It is very nice, but not ideal for Blender. I have a Mac with an AMD Vega 56 GPU. It is nice, but I never use it for Cycles rendering.
You know this, but I will state this for everyone else reading this thread: Blender on Mac OS does not use the GPU for Cycles rendering. As a result, Blender will use the CPU for Cycles render tasks. It will be very slow.
FYI, I just did an 8k texture bake at 1,000 samples on a pair of NVidia 10xx on a PC. It took less than an hour.
I wonder if one of the cloud-based Blender render services supports texture baking. If it did, that could be a cheap solution.
I am glad you found an acceptable solution.
PS, the tile size suggestion assumed a GPU. GPUs use bigger tiles. Since you are using a CPU, you should use a size closer to the default.
It seems that you have researched this topic thoroughly already. I was going to suggest the brute-force technique of increasing the samples in Cycles. I understand that you have tried this and found the time required unacceptable, but before you give up on the brute-force high-sample bake solution, you may want to check some Blender settings. As you know baking in Blender is weird (I am being kind). Here are a few settings to check. I will assume that you are using one or more graphics cards with an Nvidia 10xx GPU or newer.
1. Make sure that you are using CUDA on your GPU only (Edit->Preference->System->Cycles Rendering Devices). DO NOT USE RTX. Don’t include your CPU under CUDA even if you have a Threadripper or some other hot chip.
2. If you have more than one graphics card, verify that all of them are selected under the CUDA option.
3. Make sure that you are actually using your GPU to bake. The board partner that built your graphics card should offer a tool to monitor GPU activity. During the baking process, the GPU load should be 100%. Do not use Windows Task Manager for this. It does not do a good job showing GPU load.
4. Set your tile size to 256×256
My point is that Blender likes using the CPU to bake. Blender is sneaky and does not warn you when it does this. You can have the “Device” setting in the render properties tab set to “GPU Compute” and Blender might still default to the CPU if your settings are not quite correct. GPU baking is easily 10x faster than the fastest CPU out there.
Please let me know if I am wildly off-base here. Thanks.
@yasee, did you apply the scale of each object in Blender before export to Verge3D. ctrl-A in Blender
Verify that the scale of the cube and sphere is 1.0
I agree with everyone in this thread, but there is another way to do this. You can move the procedure by editing the XML file directly. This can be dangerous because mistakes are easy to make, but if you have a good code editor, like VSCode, and you have a continuous backup strategy in place, it is not too dangerous.
1. Save your puzzles.
2. Edit visual_logic.xml
3. Identify your “to” and “from” tab elements
4. Identify your procedure definition. It will be in a <block> element. The type attribute will be type=”procedures_defnoreturn”. The inner text of the name field element will match your procedure name.
5. Move the whole procedure definition between <tab> elements. If using VSCode, the emmet: balance(outward) command will assist you with the selection.
6. Save the XML file.
7. Reload the puzzle editor.
Here is a video of a simple example:
As strange as your example is, I once built a tombstone/memorial configurator in Verge3D!
There are many ways to adjust the text in Verge3D and different techniques will yield different appearances.
The easiest way is:
1. Create your text as a Blender text object(s).
2. Verify that “Bake Text” is NOT enabled on the Verge3D export settings.
2. Use the “Update text object(s)” puzzle piece from the Objects tab in the puzzle editor.
Alternatively, you can create a new text object with puzzles directly. That puzzle piece is called “create text object”.
Both of the techniques above result in flat text like you show in your screenshot. Obviously, text on tombstones is engraved. You can achieve this look with a custom shader. I have attached a screenshot from my project.
- This reply was modified 1 month, 3 weeks ago by jem.
Jeremy Wernick2021-08-12 at 3:11 pm in reply to: Efficient way to switch between builds of Verge3D? #43614
I understand your script. I can adapt it and make it work for me.
BTW, even though I do run Windows 10, I usually run my automation from a Bash shell in WSL, so I will not need to change your script much.
But, do I need to switch Verge3D Blender add-on if I am switching versions of the engine? I imagine that there are some changes to the add-on between builds and some of these changes might be critical to the functioning of the engine.
Thank you very much!
It looks like z-fighting. Are the face plate and the door lock face on the same plane? If so, try moving the lock body slightly back.
Hi @talpacromata . It looks like you are trying to do a keyframe animation on the viewport visibility flag. Although this would work in a native Blender animation, I do not think that animation of this parameter is supported by Verge3D. The Soft8soft team can correct me if I am wrong. You can achieve a similar effect using other techniques.
1. Use puzzles to control visibility. There are puzzles to hide and show objects. There are also timing puzzles. You can combine these two puzzle types to produce your animation procedurally.
2. If you really like keyframe animations, you can try animating the alpha value of a shader. The value nodes in Blender shaders are supported in animation. Each object would need its own material. Each material would need an alpha value node. The materials need their blend mode set. See screenshot for an example.
If it were me, I would use puzzles, but I don’t know what your real use case is. Good luck.
@gonkun, is there any diagnostic information logged to the Chrom Dev Tools console?
If a scene fails to load that early in its progress it is almost always because of a missing file or asset. I would guess that the gltf/bin files are missing. Pop open your Dev Tools and look for something like this:
If you see an error like this:
-Verify that you have exported a “Verge 3D gltf (.gltf)” from Blender
-Since it appears that you are attempting to use LMZA compression in Blender, verify that you have checked the “compressed assets” checkbox in the “configure application” puzzle piece in your init tab. This will cause your application to attempt to load gltf.xz/bin.xz versions of the gltf files.
-You did not mention from where you were testing your application. If it is from the local web server built into the Verge3D App Manager or the Soft8soft CDN, the steps above should suffice. If you are deploying it to your own webserver or a 3rd party webserver, you need to ensure that the webserver has the proper configuration to serve .gltf, .bin, and .xz file types.
I hope this helps
- This reply was modified 6 months, 2 weeks ago by jem.
I have to do this on every project, so I will share the technique I use. Use the puzzles that Yuri pointed out, but here are a few tips.
1. The “load data” puzzle is asynchronous. Don’t assume your data is loaded on the first frame. Use the “once ready do” slot to initiate whatever actions you need to perform.
2. Check if a key is in a dictionary before using it. See puzzle screenshot. Catch the error and do something if the key is missing. Typos and other data errors happen.
3. The dictionary data type in the puzzle system is implemented as a JS object. So if your JSON has nested JS objects, you will need to use the dictionary puzzles to pick through the JSON. See color values in the puzzle screenshot.
- This reply was modified 7 months, 1 week ago by jem.
- This reply was modified 7 months, 1 week ago by jem.
Jeremy Wernick2021-03-19 at 8:09 pm in reply to: Disable Rendering (Anti-Alias) puzzle not working on iPad #39598
I have been working with Pete on this issue. We wanted to understand why antialiasing works in the Swiss Army Knife example and not in our projects.
We found that this issue is not unique to the iPad. It is a general issue with Safari. You can reproduce the issue on macOS or iOS as long as you are using Safari.
We found that the difference between the Swiss Army knife project and our projects was HDR rendering. The knife example had HDR enabled. Our projects had HDR disabled.
Once we enabled HDR in Blender and re-exported the GLTF, antialiasing worked.
I preformed these tests on a fully updated Mac, Verge 3.61, and Blender 2.92. I have attached the two v3d project files to this post.
Is this expected behavior? If so, is there a cost to enabling HDR on all projects? Thank you.
You said that the cubemaps are baked “Upon loading”. I have two questions. How fast is the bake? Can the baking procedure be triggered again? It would be nice to have light probes work for 3D scenes where objects and light sources are loaded and unloaded.
Thanks! This is awesome.