#Plant IPAS
6 messages in this thread
>How do I do if would by those Silicon Garden disc? Do I have to buy their hole
serie or can I buy just one >disc?
SG is just one IPAS that generates trees, shrubs and a few weird things (I
can't remember right now, but it seems to me it also generates some kind of
fractal fencing stuff I've never used). It's available from the Yost Group —
costs $300 when I last remembered.
Last night I had a good chance to compare it to the trees generated by WB, and
I take it back — I like the WB trees better. (Sorry, Gary, although I don't
think he mind considering he's MAXimizing right now). I think if you really
need trees and DON'T have SG, I'd save the money and put it toward WB. You'll
be a lot happier in the long run (SG generates one plant at a time, with no
capability to automate this, so for one thing if you want a forest you're in
for a lot of work. You could always generate one tree and use another IPAS I
have from Yost which randomly plants and chances things, but then you're up to
$600 and… I'd definitely go WB).
Mike,
you make some good points. I was looking at SG last night and I like the trees
but they are limited by one important thing. They come out as 1 object and
therefore have a 64k face limit – that doesn't go far with trees (correct me if
I'm wrong). I thought about twiddling the SG .ls files that make the trees but
I'd probably run up against that 64k limit pretty quickly.
When exporting trees from WB it has the sense to break them up into sub-64k
face pieces (GOOD), but the mapping and face normals on trees and flowers with
actual petal/leaf geometry is all screwed up. Also the mapping on the trunks
was fouled up. I had to to unify / flip normals and resmooth and sometimes mess
with the materials/ re-apply mapping – I didn't count on doing this. Trees with
texture/opacity leaf "cards" fare better (like the pine trees with needles),
but I get better results changing from tiled material to decal on the pine
trees.
I need to be able to customize the trees in the library and I have asked for
the source L-systems code for these trees – we'll see if I get it.
Lack of alpha channel may be a problem too. I need to be able to 2d composite
layers together with images from other programs and not having alpha is going
to be a headache. Any idea of a workaround?
Martin
<< I need to be able to customize the trees in the library and I have asked for
the source L-systems code for these trees – we'll see if I get it. >>
.LS File Commands
—————–
This document describes the commands of the .LS file used by Yost
Group's Silicon Garden. This is only a brief description, "The
Algorithmic Beauty of Plants" (by Lindenmeyer) is necessary reading
to understand what's going on.
WARNING
The .LS files read by Silicon Garden were not designed to be edited by
end users. As a result, Silicon Garden's parsing of these files is not
robust. Very little error checking is done as it is assumed that the
file is error free. MODIFY THESE FILES AT YOUR OWN RISK.
Starting Parameters
——————-
The first thing that can appear in a file is a list of starting
parameter values. These specify the values of certain parameters at the
start of the generated string.
name
Name of the plant (up to 23 characters surrounded by 's )
default: 'plant'
angle
The default angle of rotation for rotations specified without an angle
parameter.
default: 22.5
detail
The starting detail for the plant. Detail specifies the number of
segments that make up a cylinder.
default: 3
mindetail
The smallest possible value of detail (it can be overridden by the '#'
command). When a stem branches off a segment, detail is reduced.
default: 3
dfactor
This specifies the rate at which detail reduces. It ranges from 0.0 to
1.0 where 1.0 = no reduction, 0.5 = 50%, etc. Detail is reduced every
time a new branch is created ( '[' ) and restored when the branch is
completed ( ']' ).
default: 0.7
length
The default distance to move in one step ( 'F' or 'f' ) if no parameter
is provided.
default: 100
radius
The starting radius of segments.
default: 20
rfactor
This specifies the rate at which the radius decreases to form a branch.
It ranges from 0.0 to 1.0 where 1.0 = no reduction, 0.5 = 50%, etc. The
radius is reduced every time a new branch is created ( '[' ) and
restored when the branch is completed ( ']' ).
default: 0.7
pen type
The starting pen type. '*' = cylinder, '#' = square, 'V' = v shaped, '-'
= flat.
default: *
pen angle
The starting pen angle. This is only used for a V pen. It is the angle
made by the V.
default: 90
bendthresh
Threshold angle for joining two segments with shared vertices.
default: 60
taper
Either ON or OFF. Then on, segments taper as a result of the '!'
command.
default: ON
smooth
Either ON or OFF. Turns on smoothing for the mesh.
default: ON
scale
The value in world units of 1 unit. Does not effect embedded .3ds
objects.
default:1
trop
Tropism vector. specified as X Y Z
default: 0 0 -1
etrop
Tendency to rotate due to tropism. 0 = no tropism
default: 0
Commands
——–
Commands appear inside the axiom or at the right side of a rule.
Most commands take arguments in the form .arg1(arg2).
Example: The 'F' command with the arguments 23 and 45 would look like
F.23(45)
Movement:
F Move forward and draw a cylinder
f Move forward but don't draw
parameters:[.arg1][(arg2)]
arg1 = % of random variation (0 – 99)
arg2 = distance to move
Rotations:
\ Rotate about head
–
+ Rotate about up
^
& Rotate about left
parameters:[.arg1][(arg2)]
arg1 = % of random variation (0 – 99)
arg2 = angle in degrees
$ Align turtle so up points up
| rotate turtle about world up by 180 degrees.
Branches:
[ Save turtle status and begin a branch
] Restore turtle status
Polygons:
{ Begin a polygon
} End a polygon
: Place a polygon vertex
Radius Reduction:
! Reduce radius
parameters:[.arg1][(arg2)]
arg1 = % of random variation (0 – 99)
arg2 = assigns a new value to radius
Materials/Pens:
' Change material
parameters:[(arg1)]
arg1 = new mat index
? Set a new pen type
parameters:[(arg1)]
arg1 = *, #, V, – (see above)
% Set angle for the V pen.
parameters:[.arg1][(arg2)]
arg1 = % of random variation (0 – 99)
arg2 = Assigns a new pen angle
= Turn smoothing on or off
parameters:[(arg1)]
arg1 = ON or OFF
Predefined Objects:
~ Place a predefined object
parameters:[(arg1)]
arg1 = object name
Vertex Management
# Change detail
parameters:[(arg1)]
arg1 = new detail
_ (underscore) Set bend threshold.
parameters:[.arg1][(arg2)]
arg1 = % of random variation (0 – 99)
arg2 = new threshold in degrees.
[end]
Jonas,
thanks for the l-systems docs. I think I'm going to run into the need for
programming l-systems in world builder and possibly in Silicon Garden.
Hopefully they do it in a similar way.
Martin
> and not having alpha is going to be a headache. Any idea of a workaround?
When the Great Martin Foster asks me for advice I know the world is in trouble.
<G> Honestly, Martin, you're one of the associate gods up there with Gary, so
I'm not worthy, etc.
Since WB generates a z-buffer that can be used with their IPAS in 3DS, can't
you generate an alpha channel from this in 3DS? Or do I not understand what
the #$#% I'm talking about? (Most probable).
Mike,
>> When the Great Martin Foster asks me for advice I know the world is in
trouble. <<
ROFL! That's hardly the case. I often ask questions on this forum <g>.
>> Since WB generates a z-buffer that can be used with their IPAS in 3DS, can't
you generate an alpha channel from this in 3DS? <<
I suspected this but then thought not. I may be wrong so it might be worth a
try. I'll invesigate …..