Jump to content

shadmar

Members
  • Content Count

    3,549
  • Joined

  • Last visited

Community Reputation

1,170 Excellent

5 Followers

About shadmar

  • Rank
    Advanced Member
  • Birthday 04/25/1976

Profile Information

  • Gender
    Male
  • Location
    Norway

Recent Profile Visitors

37,629 profile views
  1. They are made by @tjheldna so it's not my permission to give. But you can use the shaders to your liking if not otherwise is staded in them.
  2. There are water shaders in Dino Land you can steal (whole game is unencrypted) I believe the rest of the sahders are also there.
  3. Here is the code for terrain.lua --Get the primary display local displaylist = ListDisplays() local display = displaylist[1]; if display == nil then RuntimeError("Primary display not found.") end local displayscale = display:GetScale() --Create a window local window = CreateWindow(display, "Terrain", 0, 0, math.min(1280 * displayscale.x, display.size.x), math.min(720 * displayscale.y, display.size.y), WINDOW_TITLEBAR + WINDOW_CENTER) --Create a rendering framebuffer local framebuffer = CreateFramebuffer(window); --Create a world local world = CreateWorld() --Create a camera local camera = CreateCamera(world) --camera:SetClearColor(0.25) camera:Turn(35,0,0) camera:Move(0,12,-33) --Create a light local light = CreateLight(world,LIGHT_DIRECTIONAL) light:SetRotation(45,-55,0) light:SetColor(4,4,4,1) --Create terrain local terrain = CreateTerrain(world,256,256) terrain:SetScale(256,200,256) --Add a material layer local mtl = LoadMaterial("Materials/Dirt/dirt01.mat") local layerID = terrain:AddLayer(mtl) terrain:SetMaterial(layerID, 0, 0, 256, 256, 1) --PERLIN NOISE local p = {} local permutation = {151,160,137,91,90,15, 131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23, 190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33, 88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166, 77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244, 102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196, 135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123, 5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42, 223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9, 129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228, 251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107, 49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254, 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180 } for i = 0, 255 do p[i] = permutation[i + 1] p[256 + i] = permutation[i + 1] end local function fade(t) return t * t * t * (t * (t * 6 - 15) + 10) end local function lerp(t, a, b) return a + t * (b - a) end local function grad(hash, x, y, z) local h, u, v = hash % 16 if h < 8 then u = x else u = y end if h < 4 then v = y elseif h == 12 or h == 14 then v = x else v = z end local r if h % 2 == 0 then r = u else r = -u end if h % 4 == 0 then r = r + v else r = r - v end return r end local function perlin(x, y, z) y = y or 0 z = z or 0 local X = math.floor(x % 255) local Y = math.floor(y % 255) local Z = math.floor(z % 255) x = x - math.floor(x) y = y - math.floor(y) z = z - math.floor(z) local u = fade(x) local v = fade(y) local w = fade(z) A = p[X ] + Y AA = p[A ] + Z AB = p[A + 1] + Z B = p[X + 1] + Y BA = p[B ] + Z BB = p[B + 1] + Z return lerp(w, lerp(v, lerp(u, grad(p[AA ], x , y , z ), grad(p[BA ], x - 1, y , z )), lerp(u, grad(p[AB ], x , y - 1, z ), grad(p[BB ], x - 1, y - 1, z ))), lerp(v, lerp(u, grad(p[AA + 1], x , y , z - 1), grad(p[BA + 1], x - 1, y , z - 1)), lerp(u, grad(p[AB + 1], x , y - 1, z - 1), grad(p[BB + 1], x - 1, y - 1, z - 1)))) end function fbm(x, y, z, octaves, lacunarity, gain) octaves = octaves or 8 lacunarity = lacunarity or 2 gain = gain or 0.5 local amplitude = 1.0 local frequency = 1.0 local sum = 0.0 for i = 0, octaves do sum = sum + amplitude * perlin(x * frequency, y * frequency, z * frequency) amplitude = amplitude * gain frequency = frequency * lacunarity end return sum end --- ### This should match terrain created local terrainsize=256 local octaves=12 -- more is finer noise but slower local lacunarity=1.9 -- size of noise local gain=0.6 -- height gain for i=-127,127 do for j=-127,127 do local noise=fbm(i/terrainsize, 11, j/terrainsize, octaves, lacunarity, gain) terrain:SetElevation(127+i,127+j, 15+noise*20) end end --Update normals of modified and neighboring points terrain:UpdateNormals(0, 0, 256, 256) --Add another layer mtl = LoadMaterial("Materials/Rough-rockface1.json") rockLayerID = terrain:AddLayer(mtl) --Apply layer to sides of hill for x=-127,127 do for y=-127,127 do slope = terrain:GetSlope(127 + x, 127 + y) alpha = math.min(slope / 15, 1.0) terrain:SetMaterial(rockLayerID, 127 + x, 127 + y, alpha) end end --Main loop while window:Closed() == false do world:Update() world:Render(framebuffer) end
  4. Quick perlin noise example, but there is a seam issue you can see:
  5. I have no idea why it's not in the library, but here you go: DinoLand.zip
  6. unzip it, it believe it is unencrypted.
  7. If you dismantle the game Dino Land, it has a raymarched ocean you can use.
  8. shadmar

    Basic Scene Benchmarks

    It looks like there is less geometry in the second picture. Missing a stack on the right side.
  9. Can we do anything in LE5 yet?

    1. Show previous comments  6 more
    2. Crazycarpet

      Crazycarpet

      Is Is double precision really necessary? Performance will undoubtedly get killed.

      http://arrayfire.com/explaining-fp64-performance-on-gpus/

      Not to mention cache misses will start to happen more and more, 4x4 double precision matrices aren't too cache friendly.

    3. Josh

      Josh

      GPU math will still be 32-bit

    4. Crazycarpet

      Crazycarpet

      Fair enough, still RIP network bandwidth and your poor cache... just don't see the benefit. Why use structures that won't fit into registers? You're giving up a lot to have maybe more precise physics, really...It is a game engine, not a specialized physics simulator. Has there been issues with float precision in the engine? I haven't seen any reported. Seems like a premature step.

  10. Ah I'm sorry, I meant in the Leadwerks Editor, clicking the sphere primitive from button or menu. If you create a sphere, the editor will crash.
  11. I still get crash when making a sphere.
×
×
  • Create New...