Interiors Armory3D

This video describes the work on the interior for webgl Armory3D.

Application Link:

https://blend3dweb.ru/examples/armory3d/loft/html5/index.html

Camera control:
WASD/QE
Sun control:
RT/FG/VB

The scene is being tested, and we will change many options. But we would like to receive feedback and reviews from you so that virtual worlds can be made real).

New:

  • Alternative work with Ambient occlusion
  • Simulate cubemap and reflections for metals
  • GAS (Gemini with Alpha Shadow)
  • Bloom simulation of individual objects

In the plans:

  • Character physics
  • Physics / Animation Vegetation
  • Physics / Animation Cloth
  • Bootstrap/VueJS Frameworks

Links to content used in the work:
Addons
addon
cubemap
360 HDR

armory3d interiors video
video_1
video_2
video_3

forum

furniture
light

Work continues…

Hi, your first demo link doesn’t seem to work for me. Tested in Edge and Firefox.

@Blend3DWeb Since there seems to be some confusion whether this post belongs to #resources-and-tutorials or #armory-showcase, is this thread about your project or to advertise the linked add-on (is it even yours)? Also, did you forget the link to the main video by chance? On Discord you posted another video. I can’t speak Russian unfortunately, so I’m not sure what exactly your individual videos are about.

Hello. I am using Manjaro Linux. Video card GTX 1050ti. Firefox starts up.
Can clear the cache or do a hard reset. What errors does it write in the console?

Firefox

An AudioContext was prevented from starting automatically. It must be created or resumed after a user gesture on the page. Audio.hx:22:14
An AudioContext was prevented from starting automatically. It must be created or resumed after a user gesture on the page. 2 SystemImpl.hx:727:4
WebGL warning: texImage: Alpha-premult and y-flip are deprecated for non-DOM-Element uploads.
WebGL warning: texImage: Alpha-premult and y-flip are deprecated for non-DOM-Element uploads. 11
WebGL warning: texImage: Alpha-premult and y-flip are deprecated for non-DOM-Element uploads.
kha/graphics4/PipelineState.hx:117: Warning: Sampler snoise256 not found. 2 Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : Concrete_Base_02_Roughness.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO_t4_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO w2_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO_w4_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : m5.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO_met_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO_w3_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : grass-texture-35.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO_l2_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO_l1_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3
Sources/iron/data/Data.hx:473: {
	url : AO w5_AO_Denoise_AO.jpg, 
	error : [object Event]
} Log.hx:66:3

Edge

The AudioContext was not allowed to start. It must be resumed (or created) after a user gesture on the page.
kha_audio2_Audio.initContext @ Audio.hx:22
Audio.hx:43 
[Deprecation] The ScriptProcessorNode is deprecated. Use AudioWorkletNode instead. (https://bit.ly/audio-worklet)
kha_audio2_Audio._init @ Audio.hx:43
(2) Log.hx:66 kha/graphics4/PipelineState.hx:117: Warning: Sampler snoise256 not found.
AO_m12_AO_Denoise_AO.jpg:1 
GET https://blend3dweb.ru/examples/armory3d/loft/html5/AO_m12_AO_Denoise_AO.jpg net::ERR_HTTP2_PROTOCOL_ERROR 200
Image (async)
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:38
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
iron_data_MaterialContext @ MaterialData.hx:98
(anonymous) @ MaterialData.hx:45
(anonymous) @ Data.hx:294
(anonymous) @ ShaderData.hx:45
finishCompile @ ShaderData.hx:243
compile @ ShaderData.hx:219
iron_data_ShaderContext @ ShaderData.hx:91
iron_data_ShaderData @ ShaderData.hx:42
(anonymous) @ ShaderData.hx:57
iron_data_Data.returnSceneRaw @ Data.hx:346
(anonymous) @ Data.hx:340
kha_Assets.loadBlobFromPath.fileName @ Data.hx:426
request.onreadystatechange @ LoaderImpl.hx:187
XMLHttpRequest.send (async)
kha_LoaderImpl.loadRemote @ LoaderImpl.hx:193
kha_LoaderImpl.loadBlobFromDescription @ LoaderImpl.hx:225
kha_Assets.loadBlobFromPath @ Assets.hx:223
iron_data_Data.getBlob @ Data.hx:424
iron_data_Data.getSceneRaw @ Data.hx:319
iron_data_ShaderData.parse @ ShaderData.hx:51
iron_data_Data.getShader @ Data.hx:292
iron_data_MaterialData @ MaterialData.hx:35
(anonymous) @ MaterialData.hx:61
iron_data_Data.getSceneRaw @ Data.hx:302
iron_data_MaterialData.parse @ MaterialData.hx:55
iron_data_Data.getMaterial @ Data.hx:216
createObject @ Scene.hx:542
traverseObjects @ Scene.hx:406
(anonymous) @ Scene.hx:418
(anonymous) @ Scene.hx:957
(anonymous) @ Scene.hx:976
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
img.onload @ LoaderImpl.hx:36
load (async)
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:36
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
embedData @ Scene.hx:974
loadEmbeddedData @ Scene.hx:955
(anonymous) @ Scene.hx:389
iron_data_Data.getSceneRaw @ Data.hx:302
addScene @ Scene.hx:388
(anonymous) @ Scene.hx:126
(anonymous) @ Data.hx:269
(anonymous) @ WorldData.hx:47
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
(anonymous) @ LoaderImpl.hx:29
request.onreadystatechange @ LoaderImpl.hx:187
XMLHttpRequest.send (async)
kha_LoaderImpl.loadRemote @ LoaderImpl.hx:193
kha_LoaderImpl.loadBlobFromDescription @ LoaderImpl.hx:225
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:27
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
loadEnvmap @ WorldData.hx:45
(anonymous) @ WorldData.hx:30
(anonymous) @ WorldData.hx:101
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
(anonymous) @ LoaderImpl.hx:29
request.onreadystatechange @ LoaderImpl.hx:187
XMLHttpRequest.send (async)
kha_LoaderImpl.loadRemote @ LoaderImpl.hx:193
kha_LoaderImpl.loadBlobFromDescription @ LoaderImpl.hx:225
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:27
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
(anonymous) @ WorldData.hx:95
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
(anonymous) @ LoaderImpl.hx:29
request.onreadystatechange @ LoaderImpl.hx:187
Log.hx:66 Sources/iron/data/Data.hx:473: {
	url : AO_m12_AO_Denoise_AO.jpg, 
	error : [object Event]
}
AO_m11_AO_Denoise_AO.jpg:1 
GET https://blend3dweb.ru/examples/armory3d/loft/html5/AO_m11_AO_Denoise_AO.jpg net::ERR_HTTP2_PROTOCOL_ERROR 200
Image (async)
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:38
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
iron_data_MaterialContext @ MaterialData.hx:98
(anonymous) @ MaterialData.hx:45
(anonymous) @ Data.hx:294
(anonymous) @ ShaderData.hx:45
finishCompile @ ShaderData.hx:243
compile @ ShaderData.hx:219
iron_data_ShaderContext @ ShaderData.hx:91
iron_data_ShaderData @ ShaderData.hx:42
(anonymous) @ ShaderData.hx:57
iron_data_Data.returnSceneRaw @ Data.hx:346
(anonymous) @ Data.hx:340
kha_Assets.loadBlobFromPath.fileName @ Data.hx:426
request.onreadystatechange @ LoaderImpl.hx:187
XMLHttpRequest.send (async)
kha_LoaderImpl.loadRemote @ LoaderImpl.hx:193
kha_LoaderImpl.loadBlobFromDescription @ LoaderImpl.hx:225
kha_Assets.loadBlobFromPath @ Assets.hx:223
iron_data_Data.getBlob @ Data.hx:424
iron_data_Data.getSceneRaw @ Data.hx:319
iron_data_ShaderData.parse @ ShaderData.hx:51
iron_data_Data.getShader @ Data.hx:292
iron_data_MaterialData @ MaterialData.hx:35
(anonymous) @ MaterialData.hx:61
iron_data_Data.getSceneRaw @ Data.hx:302
iron_data_MaterialData.parse @ MaterialData.hx:55
iron_data_Data.getMaterial @ Data.hx:216
createObject @ Scene.hx:542
traverseObjects @ Scene.hx:406
(anonymous) @ Scene.hx:418
(anonymous) @ Scene.hx:957
(anonymous) @ Scene.hx:976
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
img.onload @ LoaderImpl.hx:36
load (async)
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:36
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
embedData @ Scene.hx:974
loadEmbeddedData @ Scene.hx:955
(anonymous) @ Scene.hx:389
iron_data_Data.getSceneRaw @ Data.hx:302
addScene @ Scene.hx:388
(anonymous) @ Scene.hx:126
(anonymous) @ Data.hx:269
(anonymous) @ WorldData.hx:47
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
(anonymous) @ LoaderImpl.hx:29
request.onreadystatechange @ LoaderImpl.hx:187
XMLHttpRequest.send (async)
kha_LoaderImpl.loadRemote @ LoaderImpl.hx:193
kha_LoaderImpl.loadBlobFromDescription @ LoaderImpl.hx:225
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:27
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
loadEnvmap @ WorldData.hx:45
(anonymous) @ WorldData.hx:30
(anonymous) @ WorldData.hx:101
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
(anonymous) @ LoaderImpl.hx:29
request.onreadystatechange @ LoaderImpl.hx:187
XMLHttpRequest.send (async)
kha_LoaderImpl.loadRemote @ LoaderImpl.hx:193
kha_LoaderImpl.loadBlobFromDescription @ LoaderImpl.hx:225
kha_LoaderImpl.loadImageFromDescription @ LoaderImpl.hx:27
kha_Assets.loadImageFromPath @ Assets.hx:200
iron_data_Data.getImage @ Data.hx:473
(anonymous) @ WorldData.hx:95
kha_Assets.loadImageFromPath.fileName @ Data.hx:475
(anonymous) @ LoaderImpl.hx:29
request.onreadystatechange @ LoaderImpl.hx:187
Log.hx:66 Sources/iron/data/Data.hx:473: {
	url : AO_m11_AO_Denoise_AO.jpg, 
	error : [object Event]
}

I’ll take a look today or tomorrow. The data of the system came, I will reproduce them.

in both browsers it started in Linux
you have windows?

  1. Sorry, I forgot the link to the video, I was in a hurry to show what happened.

  2. Showed the possibilities of Armory3D. It looks like an advertisement, but I wanted to break the stereotype that interiors are not just renderings. But the popularization of Armory3D is needed.))

  3. Now the most important thing
    We are working in polygonal webgl. In other engines, the interiors are not realistic, Armory3D immediately launched 700,000 polygons !!!
    And then an idea came up. Test Armory3D for high-poly interiors, which everyone does for static renders.
    We took the blender scene (but it can be any model from any program).
    We cleaned the grid up to 300,000.
    Using the addon baked AO with denoising. Connected by nodes separately to control the properties of the material and ao separately. Accordingly, on the AO, the scan is lightmap, on the rest - smart UV.
    We made a 360 render ( cubemap / 360 HDR ).

  4. Links to videos and forums, used as a comparison and a set of experiences.
    Links to furniture (to see what AO looks like with a color texture together (here) . But it is not possible to adjust the influence separately.

Reference to light, shows the effect of rays from the sun.

  1. Yes, it is difficult to attribute this post and video to one thing.
    On the one hand, to show developers and designers that interiors in webgl are possible, to show and tell how it’s done.
    On the other hand, Armory3D needs commercial projects. So that customers, developers, designers can show the interiors live, which means Armory3D will receive funds for development. I am ready to share profits for the development of the engine.

But most importantly, Armory3D allows you to forget about polygons in polygonal webgl. This is a strong advantage.

2 Likes

I am looking for an opportunity to translate my videos into English in order to completely immerse you in webgl)))

1 Like

Yes, Windows 11. But the OS you’re exporting from shouldn’t matter if you’re exporting to HTML5 I believe.

You might be interested in collaborating with @Armory_3D_Community. He might be willing to make a English based video on your video.

1 Like

I would be willing to help translating videos if you like.

1 Like

Thank you, I have an idea how to translate them, later I will show a test video with translation.

1 Like