Message Boards Message Boards

Making mountain 3D videos

Posted 10 years ago

Hello everyone, today I write after seeing some videos on youtube that friends have shared.

After a little reflection, I wonder, is it possible to do the same in Mathematica? Apparently there are other ways to do this in our program but i would also like you I discuss some ideas on these videos.

The links to videos are

C++ OpenGL Generating terrain

Mountain Fractal in Java

I hope any suggestion, thanks in advance

POSTED BY: Luis Ledesma
7 Replies

There are a lot of tools that facilitate this in Mathematica. For rendering terrain ListPlot3D is a very direct solution. You could outgrow it if you wanted terrain involving overhangs etc, but it is a great starting point.

The interesting problems remain generating interesting height data and textures. Here's a quick example!

rawData = RandomReal[{0, 2.5}, {10, 10}];
deltaAdjust[data_] := Sign[data] Abs[data^(1/2)]
dimension1 = Accumulate[deltaAdjust[Prepend[Differences[rawData], rawData[[1]]]]];
dimension2 = Accumulate[deltaAdjust[Prepend[Differences[Transpose[rawData]], 
     Transpose[rawData][[1]]]]];
interestingData = dimension1 + dimension2;
TableForm[{{ListPlot3D[interestingData, InterpolationOrder -> 1, 
    ColorFunction -> Function[{x, y, z}, 
      RGBColor[{0, 0.35, 0} (1 - z) + {1, 1, 1} (z)]], Mesh -> Full],
   ListPlot3D[interestingData, InterpolationOrder -> 2, 
    ColorFunction -> Function[{x, y, z}, 
      RGBColor[{0, 0.35, 0} (1 - z) + {1, 1, 1} (z)]], Mesh -> All]}}]

Example output

POSTED BY: David Gathercole

yes.

The maths to do this is simple, although I have not done it in Wolfram Language yet. (I did BASIC, Forth, etc.) Numerous ways to use OpenGL, of course. You can also attach a texture based on the z value.

If you want code, there may be something in the Demonstration Project, but that would spoil all the fun of discovering it for yourself.

Posted 10 years ago

Thank you for the information but i'm confused about which is the algorithm to use, you could share any to me, in order to work for their implementation or comment on how the strategy is to use, I am curious whether it is true that could not be done in BASIC because I have read little of that language, I hope I can help her to understand how to do this in Mathematica

POSTED BY: Luis Ledesma
Posted 9 years ago

Reviewing some of my many projects that i have to do in Mathematica, i found myself with this, the essential problem that i have is that I still don't know how split larger triangles in the smaller, if anyone has any idea how could I do so i should be grateful in advance.

I should mention that I am trying to do the same that presented with Java in the hyperlinks that i shared above,

POSTED BY: Luis Ledesma
Posted 9 years ago

This is what I've made:

tri[lista_] := Module[{news},
  news = Table[lista[[i]] + lista[[i + 1]], {i, 1, 3}]/2;
  news = Append[news, First[news]];
  news]
   dib= Map[Line, 
      NestList[tri, {{0, 0, 0}, {25, 25 Sqrt[3], 0}, {50, 0, 10}, {0, 0, 
         0}}, 2]];

As you will see in the chart below, it is where I have problems

Graphics3D[dib, Boxed -> False]

I still don't know how to make Mathematica draw triangles as shown in the image below

 expected Could you help me someone please get this image?, I thank you in advance

POSTED BY: Luis Ledesma

Hi David

very nice indeed.

Cheers,

Marco

POSTED BY: Marco Thiel
Posted 9 years ago

: David Gathercole, thank you very much for your help, it is a good approach for this problem, thank you for investing your time to show me a way to resolve this, I really like the graphics are very nice. Thank you for your help.

Greetings Luis

POSTED BY: Luis Ledesma
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard

Group Abstract Group Abstract