• Welcome to World Machine Community. Please login or sign up.
 
October 14, 2019, 09:37:52 am

News:

Read the Development Diary for an inside look at World Machine's progress!


Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - jgwinner

21
Quote from: nikita on March 05, 2008, 04:20:30 pm
Apart from the node network.. the similarity is striking.


Well, there's a ton of landscape editing programs, but in WM the node network is the point.  You can't say "apart from the Node Network," that's like saying "Apart from the wings, that airplane has a striking resemblance to my car."  :D

For non-node based editing, I use Leveller.  It can edit terrain MUCH larger than WM - WM has some serious issues with memory on a 3G XP system.  Hopefully, WM2 will be better.

            == John ==
22
General Discussion / File Input not Accurate
September 07, 2006, 08:30:19 am
Folks:

  I have some BMP's that describe road and streams that I am combining with various filters.  With 1.25 they don't seem to 'read' accuratly.  This is due I think to the scaling and the X/Y shifting.

  All I need to do is what earlier versions did - 0,0 in the upper corner, 1024x1024 in the lower opposite corner (or whatever the dimensions of the bitmap are).  How do you do that with the new file input?  I've tried making the 'specific scale' on the File Input be exactly the same as the world scale, but I still get repeated tiles across or a totally blank file input.  This is very frustrating.

  Thanks,

             == John ==
23
General Discussion / Crash using any 8k world ?
February 18, 2006, 11:09:50 am
Ha!

It was the /3G switch - at least, setting that seemed to help.  Interestingly, I have no more RAM available than I did before, but at least I got a simple 4 node network to generate.  I'll see if it finishes.

Interestingly, WM never went past the 2G limit now, either - it's at about 1.G of VM currently.  1G of physical available and 2.4G of Commit charge left.

   == John ==
24
Bug Reports and Help / Huge resolution builds and memory
February 18, 2006, 11:08:15 am
Well, RTFM - I had forgotten the /3G switch, which is odd, as even with it I don't have any more RAM.  I thought I had added it but double checked.

I can now get a 3 node world to build, although the funny thing is that I still haven't gone over 1.5G or so of VM space for WM.  Not even close to the 2G limit.

I'll try adding more nodes and see how far I get.

The same size world and doing an 'erosion' in Leveller takes much less memory, but at least it's sort of working now.

Again RTFM  :oops:

    == John ==
25
Bug Reports and Help / Re: Windows 2000?
February 18, 2006, 08:41:33 am
Quote from: mikela

Since no one has mentioned this, I suspect it may be an issue with Windows 2000.  World Machine never seems to do any disk swapping--perhaps some of the under-2GB address space is taken up by the pagefile which W-M never addresses?  I don't really know enough about Windows memory management to speculate.


No, seems to be WM.

I have the same problems, with a 4G system (3G available under XP).

With an 8K world, I can't even do a file input ->erosion->file output.  Memory used is 840m.

Memory fragmentation shouldn't be a big issue with 2000 or XP, NT has allowed discontigous memory for a while 'sparse allocations' although I forget the exact API's.  But in any event maybe it's better to allocate memory on a per line basis.  Somehow to me, doing a malloc for the whole block seems a little too simple.
26
General Discussion / Crash using any 8k world ?
February 18, 2006, 08:36:54 am
Well, 1.25 doesn't crash, but it does run out of memory.  So there is still a problem, it just doesn't crash.

From O/S:
Physical Memory available: 1.6Gig.
VM available: 2.75Gig.

Devices visited: 2
Devices processed: 2
Heightfields active: 11
Full conservation: On
Memory used: 832.4Mb

the .tmd consists of:
Input: 4k .TER (Terragen) file
Inverter
Erosion
Output


So then I tried

Input: 4k .TER (Terragen) file
Inverter
Output

and THAT won't work.  

This is very frustrating.  So apparently WM has an issue with .TER's.

Yes, I double checked full conservation it's on.

Any advice?  I don't want to use a TGA format because I will lose precision.  I messed around with RAW files and couldn't find a common set of parameters.  I have Leveller so I can convert to a variety of formats if necessary.
27
General Discussion / Open EXR, Hdr file output.
September 09, 2005, 12:29:04 am
Well you could make a 'new file output' device I would think.

I'm having a similar issue with Maya, but I think I have it solved.  I export from Leveller as a 24 bit TGA, then I have a custom Maya node to sum R*65536 + G* 256 + G ... playing with, but it's working better.

You really need higher range outputs for terrain to look good.

Making a 'pov ray' 16 bit out or a 24 bit out would be easier than going through Leveller of course.  Maybe I'll work on it but don't hold your breath.

My big issue now is roads ... a road plugin would have to come first.  :)

 == John ==
28
General Discussion / Congratulations ! (and improvements)
September 07, 2005, 12:38:07 pm
The graphics card doesn't store the height map - just the vertices it's told to display.  I look at 8k x 8k height maps in Leveller all the time.  And I've even looked at a 16k x 16k height map in Leveller.  It works fine :)

Neither of these apps use a CLOD technique which would let you view, in full 3D, essentially any resolution.  Of course, you need enough RAM to store the actual data.  Games typically use a chunked load process.

== John ==
29
General Discussion / Crash using any 8k world ?
August 27, 2005, 11:19:50 am
QuoteGreat!
I have 2 more Gig on the way. :D


Doh! It didn't help.  :(  I still can't do even a simple erosion with an 8k world, with a mask.  It blows up in the same spot.  When it blew up I had 1981052 physical RAM available, and had used 1244784 out of 5076040 of the page file.  (I haven't made my swap file really big).

I recreated everything using new nodes from the menu.

I really don't understand this.  Why does it work on systems with less physical ram?

== John ==
30
General Discussion / Crash using any 8k world ?
August 24, 2005, 03:28:54 pm
I emailed Stephen my world and he suggested I try the newer erosion device.  I've done that, and I tried going to a MUCH simpler world.  I have a file input (from a .ter), going to an erosion device, then to an output.  I also have a mask (.BMP) input going into the erosion device.

THis is on 'full conservation' mode, all other recommendations done.  WM was the only program running other than the Task Manager and background services, and notepad.

I still get a crash in exactly the same place.  At the time of the crash, I had slightly over a Gig of available physical RAM (WM was taking 650M and the O/S about 300), and 2.8G of swap space available.  WM crashed in a call to SizeHeap again (probably called from a CRT lib routine as Stephen isn't calling it directly).

Doing a 4k build works fine (and is faster with the new erosion).

Leveller doesnt' have any problems with 2-3 8k worlds up on the same machine, adn doing erosion.  I don't like the Leveller erosion (HF_LAB) as much, however.  So my work around is to do the work in WM at 4k, then import and do a final erosion pass in 8k in Leveller.

Stephen, if you have an NDA I'll run the source through Boundschecker if you want to track this down :)

     == John ==
31
General Discussion / Crash using any 8k world ?
August 22, 2005, 09:41:19 pm
Ok, I got a different addr when running WM from the debugger:

The thread '[email protected]' (0x958) has exited with code 0 (0x0).
The thread '[email protected]' (0xdbc) has exited with code 0 (0x0).
First-chance exception at 0x7c96cc82 (ntdll.dll) in World Machine.exe: 0xC0000005: Access violation reading location 0xffffffff.
First-chance exception at 0x004315fd in World Machine.exe: 0xC0000005: Access violation writing location 0x00000000.
Unhandled exception at 0x004315fd in World Machine.exe: 0xC0000005: Access violation writing location 0x00000000.

Actually - something weird is going on here - if you take the world I just emailed you Stephen, then delete the file input, then copy the perlin, then connect the perlin to the splitter, it'll crash WM.

Weird, huh?  If you create a new perlin and connect it to the splitter, no problem, only if you copy and paste (was trying to avoid emailing the 33Meg input terrain).

== John ==
32
General Discussion / Pseudo World Machine ?
August 22, 2005, 09:24:21 pm
Maybe, although to be fair most high end modellers use nodal based setups.  Maya, for example.

Still, they may have.  I bet Stephen would be a better narrator :)

== John ==
33
General Discussion / Crash using any 8k world ?
August 22, 2005, 09:21:10 pm
Crashed again - let me know where to upload the file :(  

Preferences set to 'Keep only output build results (full conservation), fresh boot, only a 4NT session (cmd) running.

463M of physical RAM avail (out of 2G), 2,800M (2.8G) Swap available, i.e. the page file was less than 1/2.

Here's the code trace:

>   [email protected]()  + 0x1d   
   World Machine.exe!0043dc0e()    
   World Machine.exe!00417fe3()    
   World Machine.exe!00431688()    
   World Machine.exe!004315e8()    
   World Machine.exe!0043163d()    
   CustomDev.dll!02efc8c1()    
   CustomDev.dll!02f12252()    
   World Machine.exe!00433c25()    
   World Machine.exe!0041c59d()    
   World Machine.exe!00469c91()    
   World Machine.exe!0043f12d()    
   [email protected]()  + 0x37   

RtlSizeHeap is the retail (release) version of HeapSize()

HeapSize

The HeapSize function retrieves the size of a memory block allocated from a heap by the HeapAlloc or HeapReAlloc function.

If you turn on debugging symbols, you can map that addess roughly to where the loc is in a release build.  Debug symbols only produce a symbol table, it's still a release build (so optimization may move around lines).

The April 98 MSJ has a great article on this - lets you find source for a release build crash.

//www.microsoft.com/msj/0498/bugslayer0498.aspx

On the speed issue, WM had 99% of the CPU most of the time, it was the only thing running.  It may be terrain related.  I sent you the world, but the .ter that is the input is 33Meg - anywhere I could put it?  I'll try zipping it and seeing how big that is.

 == John ==
34
General Discussion / Crash using any 8k world ?
August 20, 2005, 09:44:42 pm
Dang, with a 4k map it blew up again.  WM says memory used is 1539Meg, TM say VM size is 1,602,824.  

Physical Memory has 1,349,080 available.  Page File is at 1.83G, limit is 4G, peak is only 2000812.

It was building an arithmetic combiner.  Hard to believe that takes 1.3G?

Same spot in the code:

Unhandled exception at 0x7c910a0a in World Machine.exe: 0xC0000005: Access violation reading location 0xfffffffd.

It looks like a 0xfffffffd is being passed into an NT routine .. specifically RTLSizeHeap.   Every crash seems to be the same loc.  

I tracked this down, and it's a retail (normal) XP call to HeapSize.  So something is passing in a 0xFFFFFFFd into the HeapSize function.

I'm going to guess WM is trying to allocate some memory, then checking to see how large it was - but it didnt' allocate.

== John ==
35
General Discussion / Crash using any 8k world ?
August 19, 2005, 07:33:57 pm
It may be worse with TGA files - I had switched over to reading RAW files as input at one point I think, as I was splitting my big world machine up into parts, and you need to avoid TGA in that case.

It's not hardware related, this machine gets a pretty hard workout most of the time, and it's been fine.  I'm a kernel / services level C++ developer, so I brought up WM in the debugger one time it crashed:

Unhandled exception at 0x7c910a0a in World Machine.exe: 0xC0000005: Access violation reading location 0xfffffffd.

(this was at the start of the thread, along with the full MS 'send the error' business).

The 0xfffffffd location usually means something returned a bad value, and then that bad value wasn't checked and used for subsequent memory references.  

This may all be a moot point, however - I resized to a 4k x 8k terrain, started a world with only one big time sucker (erosion) and it's less than 1/4 of the way through the erosion step after 23 hours.

This is my main modeling machine so I'll probably have to kill the job, but I can let it run tonight too.  I'm going away for business in September, maybe I'll try a 4kx8k run then.

This is with an Athlon 64, 3700 San Diego core (the big L2 cache).

At least it hasn't crashed, however.  So maybe having a TGA input or output is part of the issue.

   == John ==
36
General Discussion / Crash using any 8k world ?
August 17, 2005, 08:38:30 pm
I tried a simple perlin to output device 'machine' (2 nodes) and it still crashed.

I have 2G of RAM, and I've tried both memory options.

Anyone else having the same issue?

It's trying to access an invalid memory location.

Unhandled exception at 0x7c910a0a in World Machine.exe: 0xC0000005: Access violation reading location 0xfffffffd.

Here's the windows report:

<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="World Machine.exe" FILTER="GRABMI_FILTER_PRIVACY">
   <MATCHING_FILE NAME="uninst.exe" SIZE="34673" CHECKSUM="0xC109F923" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="02/10/2003 17:58:56" UPTO_LINK_DATE="02/10/2003 17:58:56" />
   <MATCHING_FILE NAME="World Machine.exe" SIZE="811520" CHECKSUM="0xF18786F3" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1.0.0.0" FILE_DESCRIPTION="World Machine Main Application" PRODUCT_NAME="World Machine" FILE_VERSION="1.0.0.0" ORIGINAL_FILENAME="World Machine.exe" INTERNAL_NAME="World Machine.exe" LEGAL_COPYRIGHT="(c) Stephen Schmitt.  All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="08/09/2005 03:11:57" UPTO_LINK_DATE="08/09/2005 03:11:57" VER_LANGUAGE="English (United States) [0x409]" />
   <MATCHING_FILE NAME="plugins\devices\CustomDev.dll" SIZE="598016" CHECKSUM="0x8D696A5E" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1,0,0" FILE_DESCRIPTION="Std Devices for WM" COMPANY_NAME="Stephen Schmitt ([email protected])" PRODUCT_NAME="The World Machine" INTERNAL_NAME="CustomDev.DLL" LEGAL_COPYRIGHT="Copyright (C) 2003" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x1" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="08/09/2005 03:12:20" UPTO_LINK_DATE="08/09/2005 03:12:20" VER_LANGUAGE="English (United States) [0x409]" />
   <MATCHING_FILE NAME="plugins\devices\CustomRegPlugins.dll" SIZE="258048" CHECKSUM="0x6DB8E6F3" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1.0.0.1" FILE_DESCRIPTION="Registered-Only Devices for WM" COMPANY_NAME="Stephen Schmitt ([email protected])" PRODUCT_NAME="The World Machine" FILE_VERSION="1.0.0.1" ORIGINAL_FILENAME="CustomRegPlugins.dll" INTERNAL_NAME="CustomRegPlugins.dll" LEGAL_COPYRIGHT="Copyright (C) 2003" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="08/09/2005 03:12:06" UPTO_LINK_DATE="08/09/2005 03:12:06" VER_LANGUAGE="English (United States) [0x409]" />
   <MATCHING_FILE NAME="plugins\devices\ParamPlugins.dll" SIZE="233472" CHECKSUM="0x1034F718" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1, 0, 0, 1" FILE_DESCRIPTION="Scalar Devices for WM" COMPANY_NAME="Stephen Schmitt ([email protected])" PRODUCT_NAME=" ParamPlu Dynamic Link Library" FILE_VERSION="1, 0, 0, 1" ORIGINAL_FILENAME="ParamPlu.dll" INTERNAL_NAME="ParamPlu" LEGAL_COPYRIGHT="Copyright (C) 2003" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="08/09/2005 03:12:01" UPTO_LINK_DATE="08/09/2005 03:12:01" VER_LANGUAGE="English (United States) [0x409]" />
   <MATCHING_FILE NAME="plugins\devices\StdDev.dll" SIZE="249856" CHECKSUM="0xDF1A44F6" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1, 0, 0, 1" FILE_DESCRIPTION="Std Devices for WM" COMPANY_NAME="Stephen Schmitt ([email protected])" PRODUCT_NAME=" StdDev Dynamic Link Library" FILE_VERSION="1, 0, 0, 1" ORIGINAL_FILENAME="StdDev.dll" INTERNAL_NAME="StdDev" LEGAL_COPYRIGHT="Copyright (C) 2003" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="08/09/2005 03:12:27" UPTO_LINK_DATE="08/09/2005 03:12:27" VER_LANGUAGE="English (United States) [0x409]" />
   <MATCHING_FILE NAME="plugins\devices\StdRegPlguins.dll" SIZE="176128" CHECKSUM="0x67E4E84D" BIN_FILE_VERSION="1.0.0.1" BIN_PRODUCT_VERSION="1.0.0.1" PRODUCT_VERSION="1, 0, 0, 1" FILE_DESCRIPTION="Registered-Only Devices for WM" COMPANY_NAME="Stephen Schmitt ([email protected])" PRODUCT_NAME=" StdRegDe Dynamic Link Library" FILE_VERSION="1, 0, 0, 1" ORIGINAL_FILENAME="StdRegDe.dll" INTERNAL_NAME="StdRegDe" LEGAL_COPYRIGHT="Copyright (C) 2003" VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x4" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" UPTO_BIN_FILE_VERSION="1.0.0.1" UPTO_BIN_PRODUCT_VERSION="1.0.0.1" LINK_DATE="08/09/2005 03:12:09" UPTO_LINK_DATE="08/09/2005 03:12:09" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
<EXE NAME="ntdll.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
   <MATCHING_FILE NAME="ntdll.dll" SIZE="708096" CHECKSUM="0x9D20568" BIN_FILE_VERSION="5.1.2600.2180" BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="NT Layer DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="ntdll.dll" INTERNAL_NAME="ntdll.dll" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xAF2F7" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180" UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/04/2004 07:56:36" UPTO_LINK_DATE="08/04/2004 07:56:36" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
   <MATCHING_FILE NAME="kernel32.dll" SIZE="983552" CHECKSUM="0x4CE79457" BIN_FILE_VERSION="5.1.2600.2180" BIN_PRODUCT_VERSION="5.1.2600.2180" PRODUCT_VERSION="5.1.2600.2180" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xFF848" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.2180" UPTO_BIN_PRODUCT_VERSION="5.1.2600.2180" LINK_DATE="08/04/2004 07:56:36" UPTO_LINK_DATE="08/04/2004 07:56:36" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
</DATABASE>
37
Hey, I'd take a copy without docs.

I'm even a PAID customer!  :D

Parts of the program were confusing, docs are really needed.  Even as an experienced user, I would find that I had no idea what some of the inputs did.  For final beta testing I'd be perfectly happy without docs though.

I wish I could do my 16k x 4k though  :twisted:

Any hope for a 64 bit version  8)

== John ==
38
Quote from: RemnantHi Tim,

it will have both. Max res is up to 8192x8192, although to work at that size is problematic for those without a couple gigs of RAM.



Cool.

I've said this before, but that's not a high end machine nowdays.  I just bought 2 sticks of ram, grand total 200 or so.  I plan to go to 4 soon.

Anyone using this for serious game development or movies is going to have a workstation class machine anyway, with at least a gig and a half; the Ram only costs about 100 bucks if you shop around.

Leveller lets you pick whatever size you want.  I did a 16kx4x grid with my old machine and it was workable.  (I was doing a 'fly down' of Valles Marinaris).  

It would be very cool if WM could warn you but let you do something stupid.  I forget if non square works.  

       == John ==
39
I would REALLY like a way to be able to take a very large (8k x 8k) height field and start the calculation, stop it, exit out, then restart where the calculation left off.

I realize this could be hard, but sometimes things take a LONG time to complete.  

So ... as a step toward this, a 'pause' button would be VERY nice.  Sometimes you need to answer an email and you don't want to spoil an hours long run ...

(this may have already been mentioned, if so I'm just adding another vote  :) )

Thanks,

     == John ==
40
General Discussion / Spherical feature request
February 27, 2005, 09:54:12 pm
Speaking of spherical ..

I'd like to see a way to 'wrap' a piece of terrain around a sphere (preferably oblate) to simulate the horizon curve.  I'm not sure this is exactly what you were showing.  

Basically, the (rectangular) part of the height field would have params for degrees lat / long and equatorial radius.  Even better would be oblate spherids (x/y/z radius) so things like the lumpy moons of Mars could be done.  (clearly there are limitations with height fields and odd shaped spheres, but for small amounts of arc it could work).

I'm trying to take MOLA (Mars Altitude data) and make some terrain by adding detail to various files with WM, and I'd like to be able to make the horizon look curved.  I can sort of do that with POVRay with iso surfaces, but it would be so much faster to be able to do this with a height field.

Thanks,

     == John ==