if I increase the skybox visibility the AdvancedDynamicTexture transparency also increases.
If I make skybox visibility 0 or 1 , AdvancedDynamicTexture becomes fully opaque
Is this expected behavior, bug?
Anyway to avoid skybox effecting AdvancedDynamicTexture ?
The issue occurs because of the combination of skybox.infiniteDistance = true and the rendering order of the scene. Here’s why it happens:
Infinite Distance Effect: When you set skybox.infiniteDistance = true, the skybox is rendered as if it’s infinitely far away, meaning it’s not affected by the camera’s position. This is achieved by rendering the skybox in a special way where it’s always “behind” everything else.
Rendering Groups: You’ve set skybox.renderingGroupId = 0 (which is the default), and your plane with the dynamic texture is also in rendering group 0 (default). The AdvancedDynamicTexture creates a mesh that’s rendered in the same group.
Alpha/Transparency Interaction: The skybox has visibility = 0.5, making it semi-transparent. When infiniteDistance is true, the rendering of transparent objects can sometimes interfere with other objects in the same rendering group, causing unexpected blending.
So you have several choices here:
Move the plane to a different rendering group.
Remove the skybox’s transparency (if acceptable).
Keep infiniteDistance false (as you’ve noticed this works).
The matter is that you see your plane from the backside, if you don’t change the settings of ArcRotate camera. I mean, this relates to a mesh, not to GUI.
CharacterController is a not built on top of any pyhsics engine.
So no plans to embed Havok into it.
I did see the Havok based character controller released with 8.x.
Might look into adding a character mesh and animation to that but not now.
Before that I would first like to address few issues with my current CharacterController like quick fall detection, accurate step and slope detection , better step sound sync
Don’t get much time these days,
Hoping with AI code assist I might be able to squeeze out more code.
Here is the small snippet for the possible impovement of camera elasticity.
if (this._camera.radius > (this._camera.lowerRadiusLimit as number)) {
if (this._cameraElastic) this._snapCamera();
// Here is the additional part - labris
// Will put camRad into class property later
if (this._snapCamera()) {
// If camera is snapping - do nothing
} else {
// gradually increase the camera radius only if avatar is moving
if (this._camera.radius < this.camRad) {
if (this.anyMovement()) {
this._camera.radius += 0.02; // this step also should be done as property, later
}
}
}
}