• Welcome to the Community Forums at HiveWire 3D! Please note that the user name you choose for our forum will be displayed to the public. Our store was closed as January 4, 2021. You can find HiveWire 3D and Lisa's Botanicals products, as well as many of our Contributing Artists, at Renderosity. This thread lists where many are now selling their products. Renderosity is generously putting products which were purchased at HiveWire 3D and are now sold at their store into customer accounts by gifting them. This is not an overnight process so please be patient, if you have already emailed them about this. If you have NOT emailed them, please see the 2nd post in this thread for instructions on what you need to do

Towards better grass in Poser...

3dcheapskate

Engaged
But to my surprise adding a second figure and randomizing that...

2figures.JPG


I'm not impressed with that - it looks like crumpled crinkly green paper to me !

However, since the single figure looks better than I thought maybe I should either stick to using one figure of grass, or reduce the number of tufts in each alternate geometry, say from 24 to 12, if I plan to overlay two figures of grass ?

Edit: hang on, the shadows are much more blurred so I must've changed something. Have to try again
 

3dcheapskate

Engaged
Ah ! Don't use depth-mapped shadows ! It looks good with ray-traced shadows
2grqassfigures.JPG


But to be honest I think that a single 37 hex figure of grass with a suitably textured groundplane is probably good enough
 
Last edited:

3dcheapskate

Engaged
The last few renders haven't included anybody for scale, so let's remedy that.

Here's the 37 hex figure at current default size, which is whatever I arbitrarily selected when I started this topic. Scale=100%

100pc.JPG 100percent.JPG

Setting scale to 50%
50pc.JPG50percent.JPG

150%
150percent.JPG 150pc.JPG

200%
200pc.JPG 200percent.JPG

300%
300pc.JPG 300percent.JPG


I'm very pleased - I'd expected it to look ridiculous with such a variation in scale, but I think all of the above are reasonable, although 50% to 200% is probably the range I'd stick to for this particular set of alternate geometries.
 

3dcheapskate

Engaged
Just a couple more pictures with Dollie - I was just playing.
1.JPG Firefly.JPG Superfly.JPG
P.S. The one on the right's Superfly, using the simple FireFly shader from post #60. All three were using my WorldBall freebie, so one infinite and one IBL.
 

3dcheapskate

Engaged
Just putting things together for another "this is where I'm up to" zip upload. First I'll upload the Blender files and exported OBJs because I nearly lost them again !
 

Attachments

  • HexTerrain (Blend+OBJ).zip
    787.9 KB · Views: 90

3dcheapskate

Engaged
And here's the runtime. I had to split it into three zips because of the upload size limit. You definitely need the Geometries,Python,Textures.zip and Libraries(character,materials).zip but Libraries(pose,scene).zip isn't essential. Just unzip into a suitable Runtime - I recommend creating a temporary folder, say HexTerrain/Runtime folder/subfolder on your desktop, unzipping into that, and mapping that runtime.

It's past my bedtime so more info tomorrow.

Geometries\3DCheapskate\TEMPORARY\HexTerrain
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass01.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass02.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass03.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass04.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass05.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass06.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass07.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass08.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass09.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\Grass10.obj
Geometries\3DCheapskate\TEMPORARY\HexTerrain\HexBase37.obj

Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Hex Terrain B.cr2
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Hex Terrain B.png

Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Randomize Geometries.cr2
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Randomize Geometries.png
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Randomize Rotations.cr2
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Randomize Rotations.png
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Reset Geometries.cr2
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Reset Geometries.png
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Reset Rotations.cr2
Libraries\character\3DCheapskate\TEMPORARY\HexTerrain\Script Shortcuts\Reset Rotations.png

Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\Grass - Basic (no specular).mc6
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\Grass - Basic (no specular).png
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\Grass - Basic + specular.mc6
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\Grass - Basic + specular.png
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\HexBase - Soil.mc6
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\HexBase - Soil.png
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\HexBase - Test.mc6
Libraries\materials\3DCheapskate\TEMPORARY\HexTerrain\HexBase - Test.png

Libraries\pose\3DCheapskate\TEMPORARY\HexTerrain\Arrange as hex.png
Libraries\pose\3DCheapskate\TEMPORARY\HexTerrain\Arrange as hex.pz2
Libraries\pose\3DCheapskate\TEMPORARY\HexTerrain\Arrange as square.png
Libraries\pose\3DCheapskate\TEMPORARY\HexTerrain\Arrange as square.pz2
Libraries\pose\3DCheapskate\TEMPORARY\HexTerrain\Arrange as triangle.png
Libraries\pose\3DCheapskate\TEMPORARY\HexTerrain\Arrange as triangle.pz2

Libraries\scene\3DCheapskate\TEMPORARY\HexTerrain\Hex Terrain B.png
Libraries\scene\3DCheapskate\TEMPORARY\HexTerrain\Hex Terrain B.pz3

Python\poserScripts\3DCheapskate\TEMPORARY\HexTerrain\RandomizeHexGeometries.py
Python\poserScripts\3DCheapskate\TEMPORARY\HexTerrain\RandomizeHexRotations.py
Python\poserScripts\3DCheapskate\TEMPORARY\HexTerrain\ResetHexGeometries.py
Python\poserScripts\3DCheapskate\TEMPORARY\HexTerrain\ResetHexRotations.py

Textures\3DCheapskate\TEMPORARY\HexTerrain\HexBaseTest.png
Textures\3DCheapskate\TEMPORARY\HexTerrain\Leaf1.jpg
Textures\3DCheapskate\TEMPORARY\HexTerrain\Leaf1B.jpg
 

Attachments

  • Libraries(character,materials).zip
    834.7 KB · Views: 72
  • Libraries(pose,scene).zip
    296.2 KB · Views: 83
  • Geometries,Python,Textures.zip
    330.1 KB · Views: 75

3dcheapskate

Engaged
Four tomorrows seem to have slipped by...

Do you ever find yourself intrigued, perhaps even obsessed, by something apparently trivial ?

Grass00a.jpg Grass00c.jpg Grass00b.jpg

I do :cool:


I wonder if I can make my grass as beautiful as that ? Maybe something like this is a start ?
Grass01.jpg
 

3dcheapskate

Engaged
The specular on the 2nd and 3rd photos (and on the leaf I'm holding 3rd from left in the 4th photo) is really blown out - there was far more detail visible via the human eye, much more like the leftmost leaf on the 4th photo.

Here's a previous stab at getting a nice specular before I found that big grass-type leaf for the 4th photo - the Poser material and texture images were just something I was playing with because the specular always seems far too flat and lifeless on the grass renders I've been doing here - I reckoned I should give bump and displacement a go.
I particularly love the crinkly edges on the grass in my photos so I tried (unsuccessfully here) to mimic that with displacement.
I also wanted to try some bump for lengthwise ridges along the grass.
And I wanted to plugging multiple things into both bump and displacement.
Oh yes, I was also also thinking about creating textures for my corner-to-corner root-to-tip UV mapping via a simple Poser render of new square leaf I'd designed with a bottom-to-top root-to-tip UV mapping which I then cunning morph into something that looks as if it's my corner-to-corner mapping...
(many people think I'm bonkers :D - they're not wrong)
LeafSpecMat.JPG Render 1.jpg Render 2.jpg Render 3.jpg Render 4.jpg Untitled.jpg mesh.jpg
 

3dcheapskate

Engaged
Don't forget that any feedback, thoughts, suggestions, ideas etc are very welcome.

Off on a slightly different tack now - if I use one of the 'new' (888 vertices, 288 faces) alternate geometries (i.e. number 6 to 10) for each hex that makes the whole figure 32,856 vertices, 10,656 faces. I now want to add a second figure, scaled up so that the whole of the first figure fits into its central hex (about 616% I think?). I can't use the same geometries as the first figure because that would result in grass six times the size of the first figure. A continuation of my original approach from back around post #12 would be to randomize the hex rotations and geometries in Poser, export it as an OBJ, remove around 50-75% of the faces in Blender, and use that as the basic alternate geometry for the 616% figure. But at the back of my mind, and prompted by somebody's comment on this or another thread (my apologies to whoever suggested it as I can't find the post at the moment) I was wondering whether I could just create a displacement map based on the exported figure mesh and simply apply that to a two quad hex. Around twelve years ago I uploaded a (free of course) How To Model A Seamless Tiling Texture PDF to ShareCG, so I downloaded that again and gave it a try. Blender's UI's changed a bit, but it was still quite easy to follow - however, setting the bias for the displacement bake proved frustrating and I gave up. But then I thought why do the Z depth render in Poser itself? Well, for one thing Poser's Z-depth isn't actually Z depth, it's the distance from the camera to the point being rendered. Bagginsbill pointed this out somewhere once, but here's a simple Poser atmosphere Z-depth render using the top (orthographic) camera to prove it. The start/end distances for the shader below were obtained using a trial and error binary chop sort of guessing game

circle.JPG


But then I thought about my own Z-depth shader fun and games and came up with this (the color ramp was just to help me find an appropriate value for y in the P node using the aforementioned trial and error method. For those who want something less empirical bagginsbill mentioned in a few places, none of which I can find at present, that the units of the P node are in tenths of inches, and when you plug the output of a vector/color node into a non vector/color node the input value is a third of the sum of the three components (e.g. below the output of P is (x,y,z), and the input of Math_Functions is (x+y+z)/3 )... or was it the square root of the squares of the sums? No, I think that was something else. The empirical trial and error method is good enough.

Z-Depth map.JPG


And here's the render, with a more detailed render of a small area
Render 1.jpg

Render 2.jpg
And here's that render applied as a displacement map to a green square. Displacement value empirically derived again. Note: on the image map it's important to set Filtering to None.
Far from perfect, but for mid distance grass it might work
render.JPG

render-mat.JPG
 

RAMWolff

Wolff Playing with Beez!
Contributing Artist
Really wonderful project you have going on here, that the depth one with fog, so cool.

Question about the python script. Does this work in Poser 11 or Poser 12/13
 

3dcheapskate

Engaged
Thanks (the problem with my projects is that I hardly ever finish them ! :D )

I don't have Poser 12 or 13, so I can't say whether the scripts will work for them - I'm using Poser 11. However, the four scripts are really very simple and I guess that they'll probably work. All I can suggest is to give them a try
 

RAMWolff

Wolff Playing with Beez!
Contributing Artist
ah, Ok. No, they won't work in Poser 12 or 13 because of the Python update that both of those generations are now using. I still have hope that someone will come along and release a backwards compatible script to be able to use older python scripts in these newer versions of Poser but alas it's not happened yet. Thanks for clarifying.
 

3dcheapskate

Engaged
I recall that on the Freazypose - a free PoserPython script to add EasyPose controls to a figure. | HiveWire 3D Community topic here at Hivewire we managed, with the assistance of a couple of very helpful people, to get that working in both Poser 11 and 12, and I recall that the changes were minimal. So maybe we can do the same for this ? Maybe I'll post one of the scripts on the Renderosity PoserPython forum and ask.

This rings a bell The key differences between Python 2.7.x and Python 3.x with examples (sebastianraschka.com) - I think that's what I used to fix Freazypose. Found it again just googling 'python 2 to 3 syntax changes'

And for Python 2/3 compatible code - Overview: Easy, clean, reliable Python 2/3 compatibility — Python-Future documentation and Cheat Sheet: Writing Python 2-3 compatible code — Python-Future documentation,
 

3dcheapskate

Engaged
Okay, here's a zip with prototype 0.01 of the four scripts which works fine in Poser 11 (just tested them) and should hopefully work in Poser 12+ too. All I did was change the print statements, print "stuff", to functions, print ( "stuff" ), as per ADPs comments when I did a similar thing for FreazyPose

The four files have exactly the same names as in the previous zip, so simply unzip and replace the ones that are already there. The first and last dialogue when you run each script will say prototype 0.01
 

Attachments

  • HexTerrain scripts prototype 0.01.zip
    5.7 KB · Views: 59
Last edited:

RAMWolff

Wolff Playing with Beez!
Contributing Artist
Sorry, not been able to access Poser 13 right now. Something happened with the license and trying to get it resolved.
 

3dcheapskate

Engaged
No worries, there's at least 12 other folks besides thee and me who've downloaded it... but...

...they might just have downloaded it to laugh at my 'code'... :D
 
Top