<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to User_Guide_Modeling</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>Recent changes to User_Guide_Modeling</description><atom:link href="https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/feed" rel="self"/><language>en</language><lastBuildDate>Sat, 14 Jun 2014 18:26:19 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/feed" rel="self" type="application/rss+xml"/><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v14
+++ v15
@@ -1,4 +1,4 @@
-{{UserGuidePageHeader|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
+Prev:[Interface](User_Guide_Interface) Next:[ngpshot](User_Guide_ngpshot)

 [TOC]

@@ -20,7 +20,7 @@

 ## Tube stem model

-[[img src=userguide_stemmodeltubeparams.png]] 
+[[img src=Userguide_stemmodeltubeparams.png]] 

 There are three sections in tube stem model parameter panel. First section named _Axis parameters_ contains parameters which define tube axis. Second section _Cross-section parameters_ defines tube cross-section, or profile. Last section (_Phototropism_) defines influence of light source location on tube axis orientation.   

@@ -29,17 +29,17 @@

 _Length_ parameter defines base length of tube (along its axis). For trunk (zero level branch) it is an absolute value in some logical units. For other branch levels it is a scale factor relative to parent branch length. 

-[[img src=userguide_tubeaxislentrunksample.png]] 
+[[img src=Userguide_tubeaxislentrunksample.png]] 

-[[img src=userguide_tubeaxislenbranchsample.png]] 
+[[img src=Userguide_tubeaxislenbranchsample.png]] 

 _Variation_ parameter defines amount of randomness which will be applied to base length. Zero value disables randomization. Value of 1.0 for this parameter allows base length to be in range [0..2*base length]. 

-[[img src=userguide_tubeaxislenvarsample.png]] 
+[[img src=Userguide_tubeaxislenvarsample.png]] 

 For many (if not for all) plants branch length depends on their location on parent branch. _Offset influence_ parameter allows to control this dependency. 

-[[img src=userguide_tubeaxisoffsetinflsample.png]] 
+[[img src=Userguide_tubeaxisoffsetinflsample.png]] 

 _Tube_ 3D model consists of several tube segments connected to each other. _Resolution_ parameter control segment count. 

@@ -49,11 +49,11 @@

 _Radius_ parameter defines base radius of tube. For trunk (zero level branch) it is an absolute value in some logical units. For other branch levels it is a scale factor relative to parent branch radius at point where branch is attached to its parent. 

-[[img src=userguide_tubeaxisradiustrunksample.png]] 
+[[img src=Userguide_tubeaxisradiustrunksample.png]] 

 _Profile_ parameter (defined by curve) allows to define how branch radius is changed along its axis. 

-[[img src=userguide_tubecrossprofilesample.png]] 
+[[img src=Userguide_tubecrossprofilesample.png]] 

 Cross-section of tube model is a circle. _Resolution_ parameter defines count of segments which will define circle. Minimal value for this parameter is 3. 

@@ -106,12 +106,12 @@

 # Branching algorithm

-[[img src=userguide_branchingalgstdparams.png]]   
+[[img src=Userguide_branchingalgstdparams.png]]   

 _Density_ parameter contains count of branches per one logical unit. 

-[[img src=userguide_branchingdensitysample.png]] 
+[[img src=Userguide_branchingdensitysample.png]] 

 _Variation_ parameter allows to add some random variation to branch count. 

@@ -119,23 +119,23 @@

 _Min. offset_ and _Max. offset_ parameters allow to limit branches locations along parent branch axis. 

-[[img src=userguide_branchingoffsetsample.png]] 
+[[img src=Userguide_branchingoffsetsample.png]] 

 Each branch can be rotated around parent branch relative to previous branch by angle defined by _RevAngle_ parameter. _Variation_ parameter allows to add some randomness to this rotation. 

-[[img src=userguide_branchingrevanglesample.png]] 
+[[img src=Userguide_branchingrevanglesample.png]] 

 _RotAngle_ defines angle by which branch will be rotated around its axis. 

-[[img src=userguide_branchingrotanglesample.png]] 
+[[img src=Userguide_branchingrotanglesample.png]] 

 _Declination_ curve allows to control how angle between branch axis and its parent branch axis will be distributed along parent branch. _Variation_ can be used to randomize declination. 

-[[img src=userguide_branchingdeclsample.png]] 
+[[img src=Userguide_branchingdeclsample.png]] 

 # Material

-[[img src=userguide_materialparams.png]] 
+[[img src=Userguide_materialparams.png]] 

 _Base color_ parameter defines the color of branch surface. Click on the button to the right of _Base color_ label to change the base color. 

@@ -167,4 +167,4 @@

 _Transparency control_ section allows to control how reference alpha value used in alpha-test changes, depending on current level of detail. Changing reference alpha value smoothly allows to prevent branches from being abruptly appeared or disappeared provided that alpha channel of diffuse color texture contains randomly generated alpha values in opaque regions (usually pixels in such regions have alpha value 1.0). To enable transparency control check _Control enabled_ checkbox and set _Fade-in_ parameter to the LOD at which branch should be fully invisible (reference alpha value is 0.0) and _Fade-out_ parameter to the LOD at which branch should be fully visible (reference alpha value is 1.0). 

-{{UserGuidePageFooter|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
+Prev:[Interface](User_Guide_Interface) Next:[ngpshot](User_Guide_ngpshot)
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Sat, 14 Jun 2014 18:26:19 -0000</pubDate><guid>https://sourceforge.net48c9f1f5b07a1ea1dccab19ffb1f5b4ec2dda6dd</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v13
+++ v14
@@ -91,6 +91,19 @@

 _Sections_, _Curvature_ and _Thickness_ parameters allow to bend stem surface. _Sections_ parameter controls the precision with which stem profile will follow a curve from _Curvature_ parameter. _Thickness_ parameter set bounds of bending. 

+## G-Mesh stem model
+
+_G-Mesh_ is a stem model which allows to use arbitrary meshes for the branches. Unlike other stem models it does not support any kind of parameterization, so all _G-Mesh_ branches of the same branch group will looks the same. 
+
+Most of the time, 3d-model is imported from the .OBJ file. Since most of popular 3d-modelling applications can export model in this format, any of them can be used for this purpose. .OBJ file must meet the following requirements if it will be used for _G-Mesh_ model: 
+
+  1. Only quads and triangles are allowed 
+  2. Vertex coordinates, vertex normals and texture coordinates information must be present 
+
+Also, attention should be paid during texture unwrapping phase to make it friendly to tangent-space calculation process. Tangent-space calculation is required for normal-mapping. If normal-mapping is not used, tangent-space generation can be disabled during model import. 
+
+To use _G-Mesh_ stem model right-click on required branch group and select _Stem model_-&amp;gt;_G-Mesh_-&amp;gt;_Import .OBJ_. You can use _Stem model_-&amp;gt;_G-Mesh_-&amp;gt;_Triangle_ and _Stem model_-&amp;gt;_G-Mesh_-&amp;gt;_Rhomb_ to create simple branches with triangle or diamond shapes (useful for leaves if _Quad_ stem model does not suit your needs). 
+
 # Branching algorithm

 [[img src=userguide_branchingalgstdparams.png]]   
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:48 -0000</pubDate><guid>https://sourceforge.net3e622e24b82e95e2cab8f90b2ed50d7a2a12ada7</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v12
+++ v13
@@ -8,7 +8,7 @@

 To describe plant branches we need to define branch shape, branch material and rules for generating sub-branches. In our application we call these parameter sets as _stem model_, _material_ and _branching algorithm_. 

-Stem model defines 3D-shape of branches. Three stem models - _Tube_, _Quad_ and _Wings_ are supported in current version of ngPlant. 
+Stem model defines 3D-shape of branches. Four stem models - _Tube_, _Quad_, _Wings_, and _Generic mesh_ (or _G-Mesh_) are supported in current version of ngPlant. 

 Branching algorithm defines were branches will be located relative to their parent and how they will be oriented. Branch count is defined by branching algorithm too. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:48 -0000</pubDate><guid>https://sourceforge.net4954386bc594851fadd5fb586af743bb36cb8cb3</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v11
+++ v12
@@ -152,4 +152,6 @@

 It is possible to enable special _billboard_ mode for the _Quad_ branches. In _spherical_ billboard mode branch rectangle will have its _X_ and _Y_ axes parallel to the camera _X_ and _Y_ axes. In _cylindrical_ mode branch's _X_ axis will be parallel to the camera _X_ axes and branch's _Y_ axes will be parallel to the world _Y_ axes. 

+_Transparency control_ section allows to control how reference alpha value used in alpha-test changes, depending on current level of detail. Changing reference alpha value smoothly allows to prevent branches from being abruptly appeared or disappeared provided that alpha channel of diffuse color texture contains randomly generated alpha values in opaque regions (usually pixels in such regions have alpha value 1.0). To enable transparency control check _Control enabled_ checkbox and set _Fade-in_ parameter to the LOD at which branch should be fully invisible (reference alpha value is 0.0) and _Fade-out_ parameter to the LOD at which branch should be fully visible (reference alpha value is 1.0). 
+
 {{UserGuidePageFooter|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:48 -0000</pubDate><guid>https://sourceforge.net486a6cb3eceef7240c7db6e7ed8da1b9fdee6fc0</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v10
+++ v11
@@ -150,4 +150,6 @@

 If diffuse color texture have transparent regions, make sure that _Transparent_ mode is enabled. Disable _Transparent_ mode if new texture does not have transparent pixels. 

+It is possible to enable special _billboard_ mode for the _Quad_ branches. In _spherical_ billboard mode branch rectangle will have its _X_ and _Y_ axes parallel to the camera _X_ and _Y_ axes. In _cylindrical_ mode branch's _X_ axis will be parallel to the camera _X_ axes and branch's _Y_ axes will be parallel to the world _Y_ axes. 
+
 {{UserGuidePageFooter|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:48 -0000</pubDate><guid>https://sourceforge.net9fe7ba2c45e16d4d7128fd816c85765d2e277da4</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v9
+++ v10
@@ -136,8 +136,18 @@

 **NOTE: ngPlant does not use absolute file name to reference a texture image. When image file is selected, ngPlant checks if selected file's directory is in texture search path list. If texture search path list does not contain this directory, warning dialog will be shown and texture will not be loaded. To load texture either it should be moved to one of the directories from current texture search path list, or it's directory should be added to the list of texture directories via _Preferences_ dialog. Please note, that changes to texture search path will take place only after application restart.**

-_Texture coordinates_ section contains parameters which control texture coordinate generation. 
+_Texture coordinates_ section contains parameters which control how texture should be scaled or stretched in both directions. 

-_Mode_ section allows to control additional material modes. If _Double-sided_ mode is enabled, both sides of primitives would be visible. _Transparent_ parameter enables alpha-test - it is useful for rendering partially transparent primitives. 
+_V-Scale_ parameter sets texture scaling factor in the direction of branch axis (_V_-direction). 
+
+_V-Mode_ parameter allows to make texture coordinates to be dependent on absolute offset from branch origin (_Absolute_ mode) or to be dependent on relative offset (_Relative_ mode). 
+
+_U-Scale_ parameter sets texture scaling faction in the _U_-direction. 
+
+_Mode_ section allows to control additional material modes. 
+
+By default all branches are rendered as _single-sided_, e.g. only one side of each triangle is visible. It is good choice for _Tube_ branches, but _Quad_, _Wings_ and some _G-Mesh_ branches may require both sides of triangles to be visible. _Double-sided_ material mode allows to enable or disable _two-sided_ rendering of particular material. 
+
+If diffuse color texture have transparent regions, make sure that _Transparent_ mode is enabled. Disable _Transparent_ mode if new texture does not have transparent pixels. 

 {{UserGuidePageFooter|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:48 -0000</pubDate><guid>https://sourceforge.net9bdef4d3425006957d412de90ca3b42760530e38</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v8
+++ v9
@@ -132,6 +132,10 @@

 To assign texture to particular channel, switch to this channel by clicking on correspondent texture layer button, click on the big button to the right of _Texture_ label, and select file using file selection dialog. To remove texture from the channel, switch to required channel and press small button with cross symbol. 

+**TGA**, **PNG** or **JPG** images can be used as a textures. Only RGB or RGBA images with 8 bits per channel are supported. 
+
+**NOTE: ngPlant does not use absolute file name to reference a texture image. When image file is selected, ngPlant checks if selected file's directory is in texture search path list. If texture search path list does not contain this directory, warning dialog will be shown and texture will not be loaded. To load texture either it should be moved to one of the directories from current texture search path list, or it's directory should be added to the list of texture directories via _Preferences_ dialog. Please note, that changes to texture search path will take place only after application restart.**
+
 _Texture coordinates_ section contains parameters which control texture coordinate generation. 

 _Mode_ section allows to control additional material modes. If _Double-sided_ mode is enabled, both sides of primitives would be visible. _Transparent_ parameter enables alpha-test - it is useful for rendering partially transparent primitives. 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:47 -0000</pubDate><guid>https://sourceforge.netff570ecb0da057e83c9bb9fd2a5b7d4e4d79c1fb</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v7
+++ v8
@@ -124,9 +124,13 @@

 [[img src=userguide_materialparams.png]] 

-_Color_ section defines base material color. If base texture present, it will be modulated by this color, otherwise this color will be used for shading. 
+_Base color_ parameter defines the color of branch surface. Click on the button to the right of _Base color_ label to change the base color. 

-_Texture_ parameter allows to set base material texture. Current version supports "TGA" images only. At figure above texture with transparent region, defined by checker-board pattern is shown. 
+Each material has four texture channels (or layers). Two of these channels have predefined meaning. _Dif_ texture is used as a diffuse color texture, while _Nor_ texture is used as a normal map texture. Two other channels named _Aux0_ and _Aux1_ have no predefined meaning. These textures can be used in custom shaders, or by applications which use [C++ HLI](http://ngplant.sourceforge.net/docapi/hliapicpp.html) or [Python HLI](http://ngplant.sourceforge.net/docapi/hliapipython.html) to access plant models data. Lua export plug-ins have access to these textures also. 
+
+Four buttons at the top of _Texture layers_ section allows to switch between texture channels. Buttons which correspond to texture channels with attached texture have blue labels, while buttons which correspond to texture channels without attached texture have black labels. 
+
+To assign texture to particular channel, switch to this channel by clicking on correspondent texture layer button, click on the big button to the right of _Texture_ label, and select file using file selection dialog. To remove texture from the channel, switch to required channel and press small button with cross symbol. 

 _Texture coordinates_ section contains parameters which control texture coordinate generation. 

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:47 -0000</pubDate><guid>https://sourceforge.netcf71c089e88bcfb35e1ac740f4d6e2e6210a856e</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -1,3 +1,5 @@
+{{UserGuidePageHeader|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
+
 [TOC]

 # Overview
@@ -130,15 +132,4 @@

 _Mode_ section allows to control additional material modes. If _Double-sided_ mode is enabled, both sides of primitives would be visible. _Transparent_ parameter enables alpha-test - it is useful for rendering partially transparent primitives. 

-  
-
-
-* * *
-
-[Prev](User_Guide) 
-
-[Content](User_Guide) 
-
-[Next](User_Guide) 
-
 {{UserGuidePageFooter|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:47 -0000</pubDate><guid>https://sourceforge.net64360753168281bce079043015b3d0643277276c</guid></item><item><title>User_Guide_Modeling modified by Sergey Prokhorchuk</title><link>https://sourceforge.net/p/ngplant/wiki/User_Guide_Modeling/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -129,3 +129,16 @@
 _Texture coordinates_ section contains parameters which control texture coordinate generation.

 _Mode_ section allows to control additional material modes. If _Double-sided_ mode is enabled, both sides of primitives would be visible. _Transparent_ parameter enables alpha-test - it is useful for rendering partially transparent primitives. 
+
+  
+
+
+* * *
+
+[Prev](User_Guide) 
+
+[Content](User_Guide) 
+
+[Next](User_Guide) 
+
+{{UserGuidePageFooter|prevtitle=Interface|prevlink=User Guide Interface|nexttitle=ngpshot|nextlink=User Guide ngpshot}} 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sergey Prokhorchuk</dc:creator><pubDate>Thu, 12 Jun 2014 06:10:47 -0000</pubDate><guid>https://sourceforge.net63a29fe176697b3a5e56adafa10f1ad0672824a7</guid></item></channel></rss>