Difference between revisions of "Features requested for Architecture"

From Blender for Architecture
Jump to: navigation, search
(Features request)
(Dimensions)
 
(45 intermediate revisions by 9 users not shown)
Line 5: Line 5:
 
=== Interactive rendering enhancements ===
 
=== Interactive rendering enhancements ===
  
==== See Lightwave ====
+
OpenGl preview of materials and lighting in 3D view
+
<pre>
+
Complete Re-implementation of Open GL in Layout
+
 
+
* Much faster UI performance
+
* Preview Lighting scenarios within the UI
+
* Less need for preview renders
+
* Hardware shading of materials and textures
+
* Hardware shading of procedural textures
+
 
+
LightWave v9 Layout fully supports the OpenGL 2.0 specification.
+
Results from real time OpenGL shading very closely mirror the results of the LightWave rendering engine,
+
which reduces the amount of test renders that are required.
+
Lighting and materials can be previewed directly within the user interface with a much higher degree of accuracy than ever before."
+
</pre>
+
http://www.cgtimes.com.cn/upload/2006_07/06071413171045.jpg
+
 
+
==== See 3DSmax/Ogre ====
+
 
+
http://www.ogre3d.org/gallery/albums/album35/a.sized.jpg
+
 
+
* http://www.ofusiontechnologies.com/
+
* http://www.ogre3d.org/index.php?set_albumName=album35&option=com_gallery&Itemid=55&include=view_album.php
+
* http://www.ogre3d.org/
+
 
+
==== See Truespace ====
+
:http://www.caligari.com/Products/trueSpace/tS75/Brochure/guidedtour.asp
+
:http://www.caligari.com/Products/trueSpace/tS75/Brochure/images/GuidedTour08B.wmv
+
 
+
==== Other links ====
+
* [[Easy use of GLSL shaders in game engine]]
+
* http://www.blender.org/development/release-logs/blender-241
+
* http://www.daniel3d.com/pepeland/misc/3dstuff/ilum_normal/%5Bpepeland%5D-iluminating_with_normal_nodes.htm
+
 
+
==== Features request ====
+
To sum up, functions would be needed:
+
 
* non UV Texture display (the flat, cube, sphere, tube buttons in the "map" material panel)
 
* non UV Texture display (the flat, cube, sphere, tube buttons in the "map" material panel)
 
* procedural textures (for bricks in example)
 
* procedural textures (for bricks in example)
Line 49: Line 13:
 
* feel of GI/ambiant ligthing/occlusion
 
* feel of GI/ambiant ligthing/occlusion
 
* translucidity, transparency
 
* translucidity, transparency
* mirror?
+
* mirror
  
 
All of that, tight close to Blender rendering settings. This means, non-coders users could use it easily. Material settings used for rendering are translated to draw the 3d viewport material so you don"t need to define material twice, one for rendering and another time for GL previewing.
 
All of that, tight close to Blender rendering settings. This means, non-coders users could use it easily. Material settings used for rendering are translated to draw the 3d viewport material so you don"t need to define material twice, one for rendering and another time for GL previewing.
  
=== Snap and dimensions ===
+
Example in Truespace:
* Proper units and measurement system.
+
 
** Sufficient significant digits to convert between units with imperceptable error.
+
[[Image:Truespace GLSL.png]]
** Input methods to handle various system conventions (English feet and inches, Metric meters and millimeters, English decimal feet, light years, etc.)
+
 
 +
*http://www.caligari.com/Products/trueSpace/tS75/Brochure/guidedtour.asp
 +
*http://www.caligari.com/Products/trueSpace/tS75/Brochure/images/GuidedTour08B.wmv
 +
*http://www.ofusiontechnologies.com/
 +
*http://www.ogre3d.org/index.php?set_albumName=album35&option=com_gallery&Itemid=55&include=view_album.php
 +
 
 +
=== Dimensions ===
 +
* Proper units and measurement system, unlimited dimensions of the model.
 +
** A way to make things the right shape, size and location, rather than make something and then perform a series of commands to put it in the right place, then make it the right shape and size. (ie modelling in context)
 +
** Sufficient significant digits to convert between units with imperceptible error.
 +
** Input methods to handle various system conventions (Imperial feet and inches, Metric metres and millimetres, English decimal feet, light years, etc.)
 
** Direct preference association with each model so that imports of various units are properly scaled.
 
** Direct preference association with each model so that imports of various units are properly scaled.
* Ability to move objects based on a "relative" distance from a point.
+
 
* "Dimensions" tool that can add dimensions in plan, elevations, etc.
+
=== Snap ===
* Ability to define arbitrary planes based on 3d angles, or by picking three points/two edges/one face and work on those arbitrary planes as they were the "base plan" (xoy). Also constrains perpendicular to this arbitrary plane.
+
* More clever snapping : snap to midpoint, intersection, normal, extent.
http://www.newtek-europe.com/uk/support/tutorials/tut9/1.html
+
* selecting and moving of the 3dCursor
 +
* snapping to 3d cursor in the same way like snapping to vertex works.
 +
* snapping for loopCut, knife and slideVertices tool
 +
* create lines (edges) by numerical input (radius, angle, catesian co-ordinates) - this can be combined with face making and extrusion with numerical input to quickly make accurate shapes.
 +
 
 +
=== Tools ===
 +
* "measure" tool, or even "Dimensions" tool that can add dimensions in plan, elevations, etc.
 +
* a move tool that works relative to the Cartesian grid, rather than relative to the paper plane / camera orientation... ...so you can model in perspective, rather than a nineties four pane view
 +
* a rotate tool that works relative to the Cartesian grid, rather than relative to the paper plane
 +
* a scale tool that works relative to the Cartesian, rather than relative to the paper plan
 +
* a proper line tool  that allows modelling in place (drawing the line where it is going to end up, rather than playing around plonking a random generic line object somewhere, then moving it where it should be
 +
* a tool to find the lost face of a degenerate solid (usually resulting from someone performing boolean operations on a complex series of shapes modelled without snapping) and stitch the 'lost' face back in.
 +
* a fenestration tool (doors, windows, etc...) for doing all the frames & such (cause it's SOOOOOO tedious to model and has to be right, as their design and construction is controlled by legal constraints in most developed countries)
 +
* a stair tool (cause it's SOOOOOO tedious to model and has to be right, as their design and construction is controlled by legal constraints in most developed countries and they are typically REALLY expensive to get wrong)
 +
* a terrain modelling tool suitable for production of a representation of a real world terrain that you might use to make decisions about how best to spend hundreds of millions of someone else's dollars, not an arbitrary approximation.
 +
 
 +
=== Parametrics ===
 +
Some basic Parametric functions would be extremely useful. Some of these could be added as mesh modifiers. The basic premise is that one simple editable part defines a much more complex 3d model (non-visually editable).
 +
 
 +
* '''Column''' defined by:
 +
** a single vertex (which provides the base point)
 +
** height
 +
** width
 +
** an x + y offset (so that the column can be either centred on a point, or have a corner on the point),
 +
** cross section type (square, round, other?)
 +
** (later) capitals and bases
 +
** (later) angle of axis
 +
 
 +
* '''Beam''' defined by:
 +
** a single edge (which provide the base point, angle (on all planes) and length)
 +
** height
 +
** depth
 +
** a vertical and lateral offset (to define whether the beam is centred or offset)
 +
** Cross section type (square, round, I-beam, C-beam, Z-beam, etc.)
 +
 
 +
* '''Slab''' defined by:
 +
** base plane(s) (preferably an Fgon or something), which provides the shape and size.
 +
** thickness (positive or negative)
 +
** thickness type (vertical, perpendicular, vertical to absolute value (flat base plane))
 +
(slabs could also be used for rooves where the base plane(s) can be at an angle
 +
 
 +
* '''Wall''' defined by:
 +
** an edge, or polyline (which provides the shape of the bottom of the wall)
 +
** height
 +
** thickness
 +
** lateral offset
 +
** height-type (relative height from base line, down to absolute value, up to absolute value)
 +
(Down to absolute value is useful for walls topped by angled roofs, where the defining line is drawn at the height of the roof, angled, and the wall drops to the floor level)
 +
 
 +
* It would greatly simplify a lot of applications if the above parametric objects could possess:
 +
** a composite surface type (i.e. multiple layers to the surface finish with configurable thicknesses)
 +
** profiles (i.e. a sculpted cross-section)
 +
** a distinct line weight when cut in a section to when seen from a distance
 +
** a vector 'fill' pattern inside the cut face, in section
 +
Without them the parametric tools would be of little practical application in Architecture beyond initial conceptual work.
 +
 
 +
==== more complex, less important ====
 +
* hole (through walls, slabs, etc.
 +
* doors, with height, width, type, opening, reveal, etc
 +
* windows, similar
 +
* type modifications for walls, slabs, etc: brick walls, etc.
 +
 
 +
=== NURBS ===
 +
[[Image:NURBSBlends2.jpg]]
 +
*[http://sites.google.com/a/ckbrd.de/blender---nurbs/Home/]
  
 
=== Others ===
 
=== Others ===
 +
* Possibility to set background image to anyhow angeled camera, not only for front, top, and right view..
 +
* "LayerManager" advanced layer managment. naming, grouping, and unlimited nuber of them (for import issue especially)
 
* "LandscapeBuilder" a tool to build and plant real landscape based on contour lines.
 
* "LandscapeBuilder" a tool to build and plant real landscape based on contour lines.
 
* Possibility to link to a database so to be possible to get "Bills of materials", to know "quantities" of a material is in the model (ie: to know how many cubic meters/feet of brick, concrete, marble,ceramic tiles, etc. or square meters/feet for paints, etc.) Maybe trying to link to OpenOffice database would be a possibility.
 
* Possibility to link to a database so to be possible to get "Bills of materials", to know "quantities" of a material is in the model (ie: to know how many cubic meters/feet of brick, concrete, marble,ceramic tiles, etc. or square meters/feet for paints, etc.) Maybe trying to link to OpenOffice database would be a possibility.
Line 71: Line 111:
 
* Easy use of Gameblender to visit our building like in a FPS game.
 
* Easy use of Gameblender to visit our building like in a FPS game.
 
* Texture baking for non UV textured objects
 
* Texture baking for non UV textured objects
 
+
* When you start rotate 3dview by MMB by accident of for checking puposes, so possibility to break this rotating (probably by RMB) and return view into angle should be very timesaving.
===CAD type editing tools===
+
* another possible improvement for 3dview, which is not necessary, but interesting: "ViewRotateSnap" It works mainly in turntable mode (this is the_right one for architecture modeling, right? ,)) This sould be wery handfull feature, but no software i have ever seen is able to do this. Imagine: you are rotaiting your model on your screen, and checking relationships between objects. when you are very close to front view, (you want to check some parallel lines) press ctrl and voila your eyecamera catch exact front view! Release ctrl, rotate more right, when you are close to right view (1-2°) use ctrl again to jump into exact right view. It is quick efficient way, which saves many widow switching and eye-searching. imho.
 
+
* create lines (edges) by numerical input (radius, angle, catesian co-ordinates)
+
 
+
* basic parametric objects:
+
** Walls: parameters: height, thickness. Defined by one edge. A problem with this is that blender edges are not vectors, so it's not immediately possible to select the right or left side.
+
** Slab/Roof: Parameter: thickness. Defined by an fgon, or multiple faces. Thickness downwards from baseplane slabs, up for roofs. For slabs at least, three thickness types:
+
*** vertical thickness
+
*** thickness along normal
+
*** vertical thickness to absolute value (flat base plane)
+
  
 
== Work in Progress ==
 
== Work in Progress ==
* Transcription of blender materials in GLSL without coding : [[Easy use of GLSL shaders in game engine]] tutorial. [http://wiki.blender.org/index.php/User:Maike/SummerOfCode2007 GSoC for 2007]
+
* GLSL in 3D modeling view in Apricot branch
 
* Section tool - a tool to "cut" through the buildings: Look a the "Section" script in [[Scripts#Tools]]
 
* Section tool - a tool to "cut" through the buildings: Look a the "Section" script in [[Scripts#Tools]]
 
* High Fidelity Rendering engine (aka Maxwell, Yafray, Povray, Sunflow..) : Blender custom builds for Povray, Kerkythea... Blender external renderer API. GSoC 2007
 
* High Fidelity Rendering engine (aka Maxwell, Yafray, Povray, Sunflow..) : Blender custom builds for Povray, Kerkythea... Blender external renderer API. GSoC 2007
 
* Parametric modeling : http://yorik.orgfree.com/tutorials/parametricobjects-blender.html
 
* Parametric modeling : http://yorik.orgfree.com/tutorials/parametricobjects-blender.html
* NURBS modeling : GSoC aborted
+
* [http://sites.google.com/a/ckbrd.de/blender---nurbs/ NURBS modeling : completion of the GSoC (90% finished) planned through a fundraising by an experienced blender developer mentored by Emmanuel Stone (original developer)]
* [http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser Bills of materials browser]
+
 
* [http://wiki.blender.org/index.php/BlenderDev/CustomToolbar Custom toolbar]
 
* [http://wiki.blender.org/index.php/BlenderDev/CustomToolbar Custom toolbar]
* [http://blenderartists.org/forum/showthread.php?t=84319 New DXF Importer]
+
* [http://cad4arch.com/cadtools/ CAD-tools]: a CAD productivity suite for Blender 2.49 (10.2009 migius)
 +
* [http://cad4arch.com/archtools/ ARCH-tools]: object-oriented creator/editor for architectural models for Blender 2.49 (10.2009 migius)
  
 
You can follow Blender developement by reading theses mailing lists:
 
You can follow Blender developement by reading theses mailing lists:
Line 102: Line 133:
 
* Outliner where you can choose which object to see, render, modify : added in 2.43
 
* Outliner where you can choose which object to see, render, modify : added in 2.43
 
* Working together : Verse (in source, not in builds) , proxy object (2.43), append.
 
* Working together : Verse (in source, not in builds) , proxy object (2.43), append.
 +
* [http://wiki.blender.org/index.php/User:Elubie/PreviewImageBrowser Bills of materials browser] in 2.45
 +
* [http://www.blender.org/development/current-projects/changes-since-244/glossy-reflectionrefraction/ Glossy reflections] in 2.45
 +
* [http://www.blender.org/development/current-projects/changes-since-244/raytraced-soft-shadows/ Soft raytraced shadows] in 2.45
 +
* [http://www.blender.org/development/current-projects/changes-since-244/approximate-ambient-occlusion/ Approximate AO] for fast radiosity effect in 2.45
 +
* Snap between objects in 2.45
 +
* [http://blenderartists.org/forum/showthread.php?t=84319 New DXF Importer] in 2.46
 +
* Custom transform orientations in 2.46
 +
* Snap to edges and faces in 2.47
 +
* [http://blenderartists.org/forum/showthread.php?t=136439 New DXF Exporter] in 2.48

Latest revision as of 12:01, 18 July 2010

Here you can find a list of features we would like to see in Blender to improve Architectural workflow:

To do

Interactive rendering enhancements

OpenGl preview of materials and lighting in 3D view

  • non UV Texture display (the flat, cube, sphere, tube buttons in the "map" material panel)
  • procedural textures (for bricks in example)
  • bump, displacement
  • matte shadows
  • glossy
  • feel of GI/ambiant ligthing/occlusion
  • translucidity, transparency
  • mirror

All of that, tight close to Blender rendering settings. This means, non-coders users could use it easily. Material settings used for rendering are translated to draw the 3d viewport material so you don"t need to define material twice, one for rendering and another time for GL previewing.

Example in Truespace:

Truespace GLSL.png

Dimensions

  • Proper units and measurement system, unlimited dimensions of the model.
    • A way to make things the right shape, size and location, rather than make something and then perform a series of commands to put it in the right place, then make it the right shape and size. (ie modelling in context)
    • Sufficient significant digits to convert between units with imperceptible error.
    • Input methods to handle various system conventions (Imperial feet and inches, Metric metres and millimetres, English decimal feet, light years, etc.)
    • Direct preference association with each model so that imports of various units are properly scaled.

Snap

  • More clever snapping : snap to midpoint, intersection, normal, extent.
  • selecting and moving of the 3dCursor
  • snapping to 3d cursor in the same way like snapping to vertex works.
  • snapping for loopCut, knife and slideVertices tool
  • create lines (edges) by numerical input (radius, angle, catesian co-ordinates) - this can be combined with face making and extrusion with numerical input to quickly make accurate shapes.

Tools

  • "measure" tool, or even "Dimensions" tool that can add dimensions in plan, elevations, etc.
  • a move tool that works relative to the Cartesian grid, rather than relative to the paper plane / camera orientation... ...so you can model in perspective, rather than a nineties four pane view
  • a rotate tool that works relative to the Cartesian grid, rather than relative to the paper plane
  • a scale tool that works relative to the Cartesian, rather than relative to the paper plan
  • a proper line tool that allows modelling in place (drawing the line where it is going to end up, rather than playing around plonking a random generic line object somewhere, then moving it where it should be
  • a tool to find the lost face of a degenerate solid (usually resulting from someone performing boolean operations on a complex series of shapes modelled without snapping) and stitch the 'lost' face back in.
  • a fenestration tool (doors, windows, etc...) for doing all the frames & such (cause it's SOOOOOO tedious to model and has to be right, as their design and construction is controlled by legal constraints in most developed countries)
  • a stair tool (cause it's SOOOOOO tedious to model and has to be right, as their design and construction is controlled by legal constraints in most developed countries and they are typically REALLY expensive to get wrong)
  • a terrain modelling tool suitable for production of a representation of a real world terrain that you might use to make decisions about how best to spend hundreds of millions of someone else's dollars, not an arbitrary approximation.

Parametrics

Some basic Parametric functions would be extremely useful. Some of these could be added as mesh modifiers. The basic premise is that one simple editable part defines a much more complex 3d model (non-visually editable).

  • Column defined by:
    • a single vertex (which provides the base point)
    • height
    • width
    • an x + y offset (so that the column can be either centred on a point, or have a corner on the point),
    • cross section type (square, round, other?)
    • (later) capitals and bases
    • (later) angle of axis
  • Beam defined by:
    • a single edge (which provide the base point, angle (on all planes) and length)
    • height
    • depth
    • a vertical and lateral offset (to define whether the beam is centred or offset)
    • Cross section type (square, round, I-beam, C-beam, Z-beam, etc.)
  • Slab defined by:
    • base plane(s) (preferably an Fgon or something), which provides the shape and size.
    • thickness (positive or negative)
    • thickness type (vertical, perpendicular, vertical to absolute value (flat base plane))

(slabs could also be used for rooves where the base plane(s) can be at an angle

  • Wall defined by:
    • an edge, or polyline (which provides the shape of the bottom of the wall)
    • height
    • thickness
    • lateral offset
    • height-type (relative height from base line, down to absolute value, up to absolute value)

(Down to absolute value is useful for walls topped by angled roofs, where the defining line is drawn at the height of the roof, angled, and the wall drops to the floor level)

  • It would greatly simplify a lot of applications if the above parametric objects could possess:
    • a composite surface type (i.e. multiple layers to the surface finish with configurable thicknesses)
    • profiles (i.e. a sculpted cross-section)
    • a distinct line weight when cut in a section to when seen from a distance
    • a vector 'fill' pattern inside the cut face, in section

Without them the parametric tools would be of little practical application in Architecture beyond initial conceptual work.

more complex, less important

  • hole (through walls, slabs, etc.
  • doors, with height, width, type, opening, reveal, etc
  • windows, similar
  • type modifications for walls, slabs, etc: brick walls, etc.

NURBS

NURBSBlends2.jpg

Others

  • Possibility to set background image to anyhow angeled camera, not only for front, top, and right view..
  • "LayerManager" advanced layer managment. naming, grouping, and unlimited nuber of them (for import issue especially)
  • "LandscapeBuilder" a tool to build and plant real landscape based on contour lines.
  • Possibility to link to a database so to be possible to get "Bills of materials", to know "quantities" of a material is in the model (ie: to know how many cubic meters/feet of brick, concrete, marble,ceramic tiles, etc. or square meters/feet for paints, etc.) Maybe trying to link to OpenOffice database would be a possibility.
  • Better import/export of commonly used file formats like .DXF, .DWG, .3DS, etc.
  • A "PrintingEditor" that can work with the layouts and plot them "at scale". Printing capabilities for lines (continuous, dash, center line, etc. , thickness of a line, colors, etc. - all features that are needed to plot a complete set of construction drawings). If we could combine somehow Blender with a vector based tool - such as Inkscape, OpenOffice or similar - that might produce the result acceptable for "professional printing".
  • Easy use of Gameblender to visit our building like in a FPS game.
  • Texture baking for non UV textured objects
  • When you start rotate 3dview by MMB by accident of for checking puposes, so possibility to break this rotating (probably by RMB) and return view into angle should be very timesaving.
  • another possible improvement for 3dview, which is not necessary, but interesting: "ViewRotateSnap" It works mainly in turntable mode (this is the_right one for architecture modeling, right? ,)) This sould be wery handfull feature, but no software i have ever seen is able to do this. Imagine: you are rotaiting your model on your screen, and checking relationships between objects. when you are very close to front view, (you want to check some parallel lines) press ctrl and voila your eyecamera catch exact front view! Release ctrl, rotate more right, when you are close to right view (1-2°) use ctrl again to jump into exact right view. It is quick efficient way, which saves many widow switching and eye-searching. imho.

Work in Progress

You can follow Blender developement by reading theses mailing lists:

Done