That's one of features that the HeightMapModifier class does in 3.6. It allows you to update with no reconstruct.
its on the todo... Fabrice On Jun 9, 2011, at 8:26 AM, Jahiro wrote: > Awesome, thanks for the update Choon - that stitch feature of the > Perlin noise generation sounds perfect - fingers crossed it works. > > I have a few observations on your idea: > > You say: "I've decided to try to manipulate the bitmapData in the > heightmap to create a scrolling > terrain effect. So instead of moving your object/camera you make it > look like its moving by scrolling or rotating the terrain. The > question will be whether updating the heightmap data, and passing it > to the Elevation constructor to rebuild the terrain on each frame > will > be fast enough" > > I think there may be a simpler way to do this - the generated > Elevation mesh can be pretty darn epic. You can pass it a 1000x1000 > perlin noise heightmap and generate an absolutely huge mesh. Using > your technique of keeping the camera in the same place sounds good, > and the generated mesh could be so big that it may take several > thousand frames of scrolling the terrain before you can see the edge > of it. At that point, you could create a new Elevation, made up of a > stitched Perlin Noise that matches seamlessley with the one currently > underneath the camera, and bolt it onto the visible edge. Once the old > Elevation is out of the picture, you just destroy it. > > That way you don't have to worry about doing so much work every frame > - only when the edge of the Elevation becomes visible to the camera. > > Not sure if that would work - does it sound plausible? > > On Jun 9, 2:46 pm, Choons <[email protected]> wrote: >> yeah Hi Jahiro - I'm kind of working on an approach like that too. The >> BitmapData perlinNoise function has a "stitch" parameter that is >> supposed to generate maps that you can tile. I've decided to try to >> manipulate the bitmapData in the heightmap to create a scrolling >> terrain effect. So instead of moving your object/camera you make it >> look like its moving by scrolling or rotating the terrain. The >> question will be whether updating the heightmap data, and passing it >> to the Elevation constructor to rebuild the terrain on each frame will >> be fast enough AND whether the perlinNoise stitch method really does >> generate maps whose edges match. I'm writing code tonight to explore >> it. >> >> Another thing I have considered- if I'm not mistaken the way the >> Perlin noise function works it should be "shiftable." For instance, >> your notion of building a long 4000 pixel strip. Is it possible >> instead to build a 1000 pixel long Perlin strip 4 times on the fly (or >> as many times as you need) where you are passing to the Perlin >> function somehow the coordinates where it last stopped in essence >> telling it to "pick up where it left off"? I'm very new to all this >> procedural noise stuff so I don't know yet whether that is possible. >> One thing I do know that helps in that regard is that random number >> generators are really pseudo random so as long as your seed value is >> the same the numbers it generates are always the same at the same >> point and it should be possible to build the edge of the next tile to >> match by using that. That would give a true infinte (almost) terrain. >> The main problem I can foresee with that approach is that generating >> perlin maps is an "expensive" process and might not work in real time. >> >> There's a great book on all this called 'Procedural Teturing & >> Modeling' by Ken Musgrave. I'm trying to understand it all. It's about >> ten years since it was published and he uses RenderMan and C in his >> examples which complicates things a bit but I highly recommend it. >> >> On Jun 8, 9:12 pm, Jahiro <[email protected]> wrote: >> >> >> >> >> >> >> >>> I too am really interested in how to go about this - I have an idea >>> that might work. >> >>> I don't know anything about best practices around procedural terrain >>> generation so apologies if this sounds dumb, but could you do >>> something like this? >> >>> 1) generate a big strip of Perlin noise bitmap, like 1000x4000 >>> 2) use the Perlin noise as a HeightMap and generate the terrani using >>> the Broomstick Elevation class >>> 3) fly the camera over the terrain - when the camera gets close to the >>> edge of the terrain, repeat steps 1 and 2 above and plug on another >>> strip of generated terrain. >> >>> Now, the 2 generated terrains obviously wouldn't match up nicely - the >>> 2 edges that touch would have very different topology, so there would >>> have to be an algorithm that takes the vertices along the edges of the >>> 2 terrains that need to join up, and 'stitch' them together, by >>> working out a nice way to blend the 2 edges. >> >>> Does that sound feasible? That was the approach I was going to take, >>> but would be great to hear of the 'proper' way to do things. >> >>> On Jun 7, 8:52 am, Choons <[email protected]> wrote: >> >>>> hell yeah David's demo on JITB has me stoked. >> >>>> http://www.derschmale.com/2010/10/07/ray-tracing-with-pixel-bender-us... >> >>>> Now how can I do exactly that in Broomstick? I'm studying his source >>>> code now. The 2nd preview release of Pixel Bender 3D is out but sadly >>>> looping is still not implemented so the same main issue he mentions in >>>> his article remains. God it looks cool though >> >>>> On Jun 6, 11:47 am, Michael Iv <[email protected]> wrote: >> >>>>> David Lenaerts, Away3D team member .He has got an article on terrain >>>>> raymarching >>>>> his blog "Der Schmale" >>>>> Also these two articles are very informative.I also want to develop such a >>>>> utility but have to much work now.If Away could put such a tool into the >>>>> framework it could be really nice. >> >>>>> http://www.subblue.com/blog/2009/3/7/tracing_a_terrain >> >>>>> http://iquilezles.org/www/articles/terrainmarching/terrainmarching.htm >>>>> <http://www.subblue.com/blog/2009/3/7/tracing_a_terrain> >> >>>>> On Mon, Jun 6, 2011 at 7:35 PM, Choons <[email protected]> wrote: >>>>>> @Ringo I'm interested to see what I've come up with too ; ) I'll post >>>>>> it soon. No Bullet Flash in it yet but that is next. >> >>>>>> @Michael which David? There's about 4 regular Dave's on here. >> >>>>>> I got my head around (tried to) some multi-fractal solutions like >>>>>> rescale-and-add and noise synthesis this weekend. They look like good >>>>>> solutions to handle creating terrain on the fly that can also do LoD, >>>>>> but how to texture/color them isn't obvious to me. I'm hoping not to >>>>>> to have to reinvent the wheel here if someone has already got a >>>>>> working solution. >> >>>>>> On Jun 6, 1:46 am, Michael Iv <[email protected]> wrote: >>>>>>> I think you should talk to David >> >>>>>>> On Mon, Jun 6, 2011 at 9:31 AM, ringodotnl <[email protected]> wrote: >>>>>>>> Hey Choons, >> >>>>>>>> Interested to see what you come up with. >> >>>>>>>> On Jun 5, 7:55 am, Choons <[email protected]> wrote: >>>>>>>>> Hi - I've been working on a flying demo and have started looking at >>>>>>>>> ways to create a procedural terrain that always fills in ahead of the >>>>>>>>> flight direction and is destroyed as it scrolls off the screen. I'm >>>>>>>>> partial to a diamond-square approach but wanted to check in here to >>>>>>>>> get ideas before I proceed. How would you guys go about it in >>>>>>>>> Broomstick? >> >>>>>>> -- >>>>>>> Michael Ivanov ,Programmer >>>>>>> Neurotech Solutions Ltd. >>>>>>> Flex|Air |3D|Unity|www.neurotechresearch.comhttp://blog.alladvanced.net >>>>>>> Tel:054-4962254 >>>>>>> [email protected] >>>>>>> [email protected] >> >>>>> -- >>>>> Michael Ivanov ,Programmer >>>>> Neurotech Solutions Ltd. >>>>> Flex|Air |3D|Unity|www.neurotechresearch.comhttp://blog.alladvanced.net >>>>> Tel:054-4962254 >>>>> [email protected] >>>>> [email protected]
