Introduction to Hauzd - Part 2

Introduction to Hauzd - Part 2



VERY IMPORTANT NOTICE
If you´re using an editor version 1.06.130 or newer, you can import your scenes faster:

• You DON'T need to use the prefixes geom_ or obj_
• You DON'T need to UV unwrap channel 2 of every geometric element.
• You DON'T need to set up a resolution or use the tag BAKE=XXX.
• Most of name errors are automatically solved in the import process. 







Introduction to Hauzd - Part 2


Welcome to the second part of our training! Missed the first? GO HERE.

This time we will cover all modelling and preparation techniques to import your scenes to hauzd engine.

This is the first part of the production process to create an interactive 3D project.

We will need 3ds Max to create all our architecture files and export each scene as .fbx, currently, this is the only software compatible with our scripts and our engine.

Why do we need low poly Modelling?  

Hauzd final product is designed and developed to run smoothly in any device, mid-range smartphones, low end pcs, modern smart Tvs, Touch Screens and more, most game engines requirements are expensive high-end hardware, this is not the case with our engine, so we must prepare our scenes to run correctly for real time rendering.

Hauzd engine can run big projects with large masterplans and hundreds of units, but you must always have in mind that you have to ensure your client a good performance in all available devices.


Optimization Techniques


Our engine will use the tris as final polycount, you can inspect this number by going into Configure viewport, statistics and show.

You can download and inspect our library to understand how many polys we recommend for each type of object and check how they are created.

Each Interior scene object needs to have the 3d object asset and the 2d object that will be used for the 2d floorplan viewport.

3d Object
2d Object


Try to always use the lowest and most accurate amount of poly needed for an object so it doesn’t look chunky but keep in mind these assets will be seen from a certain distance , you can remove lower faces or geometry that the user won´t ever see.

You can also remove all small details and create it as textures  using  the texture map, using this method, you can add as many details as you want. You can create this textures in photoshop or any other image creation software, always use power of two dimension.



POWER OF TWO DIMENSIONS

64x64
128x128
256x256
512x512
1024x1024





Avoid using more than 3000 tris in one object, save this number for something really important and high detailed element of the scene.


Name Convention


The name convention for your 3d objects is:

prefix_ObjectName(TAG,TAG)ObjNumber

The ObjNumber adds up to your object name and it will help you to keep your scene organized, Hauzd engine needs unique names for all 3D object so having this number will avoid duplicated names errors.

You will use TAGS to define some options and engine instructions for your 3d Objects, the most used are:

  1. BAKE=XXXX, This tag is one of the most important tags, this will be used to bake the lights and shadows into your object, the value of X will be the resolution for your lightmap, this will be independent from your texture atlas and according to your object size, a small objet can use 64 value, and a big object like a full scene floor can use a value of 1024, it must power of two dimensions.



 

Hauzd engine will do its best to automatically render transparent objects correctly, but you can apply the TRANS and SORT tags to certain situations.

  1. TRANS=XXX  This tag and value is used for sorting Transparency, The transparency value by default for all transparent objects is 128. Hauzd engine uses back to front rendering so, the lowest value will be drawn first, and the highest value will be drawn last, the object you want to be directly on front of the camera, should have the highest value, and the object that is further away should have the lowest value.

Correct Back to Front Drawing
Correct Back to Front Drawing

Incorrect Back to Front Drawing

Incorrect Back to Front Setting

  1. SORT This tag is used for sorting triangles within a single object, this will automatically cache multiple triangle orders based on different camera angles, this is particularly useful for foliage geometry to avoid display artifacts.
  1. MIRROR=10 This tag is for creating a reflection plane on your floorplan floor, it will only work with planar geometry and its expensive on performance so use it wisely.
MIRROR=10 Tag Active
NO mirror Tag



You also need to set certain PREFIXES to identify what type of asset it is:

  1. obj_  this will mark your asset as a “3D OBJECT”, any asset marked as an "obj" in the engine, will be able to be used as an instance object and shared among scenes within the engine, this saves a Lot of memory and optimizes performance.
  2. geom_ We recommend to use this prefix for all your unique non instanceable structure geometry, terrain, walls, roof, floors,  or forms a part of your building, house or apartment.
  3. plan_ This prefix is for the geometry that acts as a 2d display on the engine, if you created your floorplan using the Walls Generation Script, all geometry intended for 2d display will be automatically generated with this prefix.
  4. planObj_ his acts the same as the "plan" prefix but "planObj_" is intended for 2d furniture or "props" representation, anything thats not walls, doors, windows, or part of the floorplan structure should have this prefix so the engine can distinguish between this 2 categories and be able to hide them if desired when visualizing the apartmen's measurements.
  5. planDim_ You will only add this prefix to the lines (splines) that you will use for marking your floorplan's measurements.
  6. part_ This prefix is for marking any geometry that is intended to be highlighted when selected, in most cases you will use the "part_" prefix for marking apartment windows on your building exterior scene or floors in keyplans.
  7. partColl_ This prefix works in conjunction with the "part" prefix, since no geometry object will be able to be highlighted if it is not selected first, and the "partColl_" prefix is preciselly to  mark a geometry object as a "selectable volume" so the engine can detect its Collition so users are able to tap on it.

partColl_ object

part_ on Window Object

part_ and partColl_ in action


  1. cam_ You will use this prefix for marking the 3d object the engine will use as the reference for the Camera through which you will view and manipulate your 3d scene.
  2. camLoc_ This prefix works exactly like the "cam" one but "camLoc_" is intended for marking the Nurbs object that will be used as reference for the Points of Interest Camera.

cam_ object
camLoc_ Object

Unlike regular game engines with Hauzd you can have practically unlimited number of light sources in your scene, you will have 2 prefixes to identify them.

  1. sun_ This prefix will mark your Omni light as a "Sun light" that will be recognized by the engine.
  2. light_ This will mark standard light elements as interior lighting.


Material Set Up 

Right now, only standard materials are compatible with the engine, we will need to use texture atlas containing the maps you need for some objects, using power of two texture dimensions sizes, we can organize all our different maps inside that canvas.

You can use Photoshop to assemble your atlas and, to define the reflection value, you can use the opacity value, being  2 the lowest value for reflectivity, and 100 the highest value. We will learn how to use this a little bit later. 

For now, you can only use the diffuse input for your color and reflection value, and the alpha input if the object has any kind of texture based transparency.

To organize our scenes better, we will set up a multi sub material, which will hold our materials so we can assign them with material ids. The name conventions for this materials will be:

materialname(TAG=0.0,TAG

You will use tags to define some options for your materials, the most used are:
  1. ENVMAP This will define the cubemap reflection based on the Specular Value or your png opacity value that you assigned in photoshop.
  2. ENVPULL=X.X this tag is for the reflection not to stay fixed with the camera, recommended value is 0.7
  3. BAKEOPAC=X.X  this makes the material translucent to the light it receives, a value of 1.0 will stop the light from passing through the object and create a solid shadow.
  4. TWOSIDE This tag will make the material turn the object's polygons visible by their 2 sides.


Lightmaps



To set and use the lightmaps, first, in the modelling process you need to add a second UV channel where the shadows will be baked, you can use our script for this, make sure none of the parts of the uvs are overlapping, this may cause artifacts, after setting the tags, you need to run the “BAKE” command in our engine and wait for some minutes, after its ready, you can click VIEW and see the results.

If it looks pixelated, dirty or with noise, you can increase the resolution in the bake tag and run the command again.

Installing Scripts and Overview

For 3ds max, you need to go to your script folder and copy all the contents inside of it, this way, the main hauzd script will load every time you open the software.

From this script you can execute the engine, export your scene correctly and unwrap UVs.
Same way for illustrator UI script, you need to go to your local disk, and paste the file in the preset folder.

This script will be used to export your interface assets for Hauzd engine.

For the wall generation script, you can paste the files in a separate folder and open it whenever you need it.


Scenes Hierarchy / Linking

You need to create your project using different level of details that we are going to organize from bigger to smaller.

Masterplan - > Buildings -> Keyplans -> Unit
                                                                  House/ Office / Apartment / Floor

We will link all these scenes using interactive collisions with the tags part and partColl. This way, the user can go in and out from each unit after configuring the pairing with hauzdEdit.

You can begin your 3D production with the smallest unit and the bigger exterior scene, the fastest way to work your interior scenes is to use our wall generation script, this script will generate the walls, doors, windows, textures, unwrap your UVs for texture and lightmaps, and set all names and tags you will need for your structure.

After cleaning up your CAD file, you can import it in 3ds max, you will need to trace splines, this is the way the script will recognize where to build a wall and how to do it.

Using IDs, the script will recognize where to create a solid wall, a door or a window.

The most important thing is that you always need to place yourself in front of the wall you will draw, and draw ALWAYS to the right.

There are several video tutorials and documentation for this script in our help desk, we recommend to go to help.hauzd.com and learn everything about it, this wall generation script can make your work easier for interior floorplans, it creates everything you need so you just need to add and place furniture, extra elements and you´re done. 

Before exporting, Make sure everything you need to add to the engine is in the proper EXPORT layer, check tags and use the Export Button of the script.

For keyplans, you will need to make the structure of the whole floor, you can use the wall generation script in this part as well, but you can skip the furniture, you will also need to set up your collisions so the final user can enter each unit from this keyplan.

For the exterior modelling we need to use another workflow, the  wall generation script won´t be useful on this part, we need to optimize as much as we can by attaching multiple close objects and be careful with our vegetation, we also need to set our collision objects for this scene, this collisions will lead into our keyplans or apartments.

Remember, you can use our   Object libraries  for your scenes or create your own assets.


Common Errors

Most common errors on this part of the 3d productions are: 

Duplicated material names.
happens mostly when a copy of a material is dragged into a scene with the same material name, you can avoid this by renaming or “use scene material” option when importing your object library if you want the material you already have on your scene scene .


Displaced Pivots. 
You can notice this problem when the location of the first scene do not match the location of the second scene and you see an offset in the transition between both scenes. To solve this, in the collision that leads to your scene, you need to match that pivot center, with the world 0 transform of your scene.

That means, if you place your pivot, upper right in your first scene, the world 0 transform of your second scene needs to be on that same exact point. If you notice its bigger or smaller, then you have a scale problem that needs to be fixed as well.


Name with more than 15 characters.
you always need to keep your name characters clean and short.

For more errors you can refer to our community forum.
And for Bugs (When things are not working as expected and you already checked your assets) you can submit a ticket in our help center.

    • Related Articles

    • Introduction to Hauzd - Part 1

      Hauzd is the easiest way to create interactive real estate 3D presentations and I'm excited to show you the production pipeline so you can start creating your projects faster and easier than ever!. If you don´t have the installer yet, you can ...
    • Introduction to Hauzd - Part 3

      Para ver el video con subtítulos en español , actívalos en youtube. Introduction to Hauzd - Part 3 Welcome to the third part of our Learning Curve! Missed the second?  GO HERE. in this Tutorial we will learn how to assembly our scenes and use hauzd ...
    • Introduction to Hauzd - Part 4

      Para ver el video con subtítulos en español, actívalos en youtube Introduction to Hauzd - Part 4 In this video we will learn how to modify and use our interface template to create an unique look for your client. Your clients will always appreciate if ...
    • Webinar - Introduction to Hauzd Engine (English)

      INTRODUCTION TO HAUZD WEBINAR Content: App configuration: Basic UI import Scene blueprints and Scenes Node Blueprints and Node Hierarchy Color Mods Galleries and images Specifications Price Lists Maps Properties Admin Real Time control
    • Introduction to Lowpoly

      Welcome Hauzd Users! The "Introduction to Lowpoly Training" is the Most important Training you need to watch in order to start modeling your project properly so it gets the best performance results inside the engine. Skipping any of these tutorials ...