Jump to content
YouGroove

What are you working on :

Recommended Posts

Awesome tool.

 

Here is some ideas that could make it more complete :

 

- Pivots named "pauseXXX" ?

When the destination pivot reached is named "pauseXXX the camera would pause for a delay of XXX milliseconds before continuing it's path

 

- pivot named "Jump":

When the destination pivot reached is named "Jump" in the list , the camera will jump directly to the next pivot position without following curve path.

 

 

- For each pivot position , ability to enable a script attached to the pivot

Each pivot could have a custom script named "cinematic" and this script would be custom with entities fields , and it would just launch entities functions.

For example : starting a particle system of some entity , lauching character animation of another entity, or anyhting else.

Share this post


Link to post
Share on other sites

thanks YouGroove,

 

the jump part could be made with multiple cameras i guess. but the other two things might be useful. will look into that.

Share this post


Link to post
Share on other sites

Thanks. No, texture took from the Internet. Pieces did imposition on the UW texture. (Google Translate smile.png)

(Спасибо. Нет, текстуру дерева брал из интернета. Затем частично, выборочно вырезал части и накладывал на текстуру UW. Затем, рисовал края.)

http://pichost.me/1532439/

Share this post


Link to post
Share on other sites

Just updated the camera dolly script. It now also interpolates the rotation and includes a event script that get called as soon as the camera reaches that point. (you should be able to open a door for example for the camera to fly through)

Share this post


Link to post
Share on other sites

Playing around with boxes in Silo2. Extrude and Bevel mainly.

Look how crappy it looks in Silo2 and how nice it becomes in Leadwerks renderer:

post-747-0-93361000-1428354406_thumb.jpg

post-747-0-13278800-1428354432_thumb.jpg

Share this post


Link to post
Share on other sites

Playing around with boxes in Silo2. Extrude and Bevel mainly.

Look how crappy it looks in Silo2 and how nice it becomes in Leadwerks renderer:

 

Awesome Shadmar! ...really looks good...way better than my attempt at a space station..lol

Share this post


Link to post
Share on other sites

Yeah very nice. A good showcase for LW3,

 

My levels look quite bland compared.

Share this post


Link to post
Share on other sites

In progress of porting my Source mod to LE3.

 

screenvec_small.jpg

 

lol...now I have portal flashbacks..

Share this post


Link to post
Share on other sites

I leraned it from Unity 2D rogue like tutorial, you manage a 2D array, each cell contain some model :

-a room

-a corridor

- a corner etc ...

Each model has different connection rules and directions( Up, Down, Left , RIght)

 

You define a size for the dungeon and some parameters :

1) connecting room probability (a room near another one)

2) corridor connections probability (1,2,3 ... )

3 ) corners probability ( 1,2,3 ...)

And you start generation at center :

- the more you get to border limits the more random probability of closing corridor or room is big. Also more probability for side level corridors.

- when generation is done on last room it is some exit or a boss room.

 

Each rooms and corridors will have doors, so only prefab tiles around the player will be loaded and detsroyed dynamically to keep a good framerate. Prefab tiles will have pivots for random placement of loot, monsters, lights, assets decoration.

Share this post


Link to post
Share on other sites

Another Work in progress Space Fighter...it will fly through planet atmosphere also... early prototype.

post-2229-0-39927200-1431122551_thumb.jpg

post-2229-0-01389900-1431122580_thumb.jpg

post-2229-0-53171300-1431122599_thumb.jpg

Share this post


Link to post
Share on other sites

Been working on implementing particles, feedback, aiming down sights and gun movement (like recoil and stuff). Results are very satisfying... Will implement Steamworks as soon as the gameplay is solid

 

1537755_1021643941180891_419778213955464657_o.jpg

 

11174255_1021644001180885_955770362410521225_o.jpg

 

11250622_1021644021180883_8244261198899422166_o.jpg

Share this post


Link to post
Share on other sites

Planet, textures are postprocess generated.

This runs 8 noise functions with 12 octaves, textures are rendered once to a buffer in postprocess and then used as reglar textures, runs at 60 fps no matter the noise complexity.

post-747-0-32885300-1431608377_thumb.jpg

Share this post


Link to post
Share on other sites

Well done. I was planning on doing this for my planetary shaders as an optimization, but I haven't yet had time to investigate it. Any tips on getting the process to render to a buffer to get me started (if you don't mind my asking)?

 

Regardless, looks great...

Share this post


Link to post
Share on other sites

I load this as a postprocess, where the fullquad shader is the noise generated using equirectangular uv coordinates.

The fullscreen uv coordinates fed this function for equirectangular distortion, then these coordinates are used for 3d-noise.

 

vec3 GetSphereCoords(vec2 uv){

   float theta = twopi * (uv.x);
   float phi = pi * (uv.y);
   float x3d = cos(theta) * sin(phi);
   float y3d = sin(theta) * sin(phi);
   float z3d = -cos(phi);
   return vec3(2*x3d,2*z3d,2*y3d);
}

 

The diff shader is just any diffuse+normal shader with textures fed from the buffers.

 

Here is the buffer pipeline setup I used (lua file is loaded as postprocess):

--------------------------------------------
-- Planet texture shader by Shadmar
--------------------------------------------

--Called once at start
function Script:Start()
   self.fullquadshader = Shader:Load("Materials/Star/_copland_project.shader")
   self.diff_shader = Shader:Load("Materials/Star/diffuse+normal+planet.shader")
   self.shader_pass = Shader:Load("Shaders/PostEffects/00_shaders/_passthrough.shader")

   self.onepass=true
   self.resolution=3   --this is x times screen resolution fullquadshader resolution will render
   self.passes=0
   self.tex = nil
end

--Called each time the camera is rendered
function Script:Render(camera,context,buffer,depth,diffuse,normals)

   --Create render buffers if they don't exist
   if self.buffer==nil then
       self.diffuse = Texture:Create(buffer:GetWidth()*self.resolution,buffer:GetHeight()*self.resolution,Texture.RGB, 0, 1, 0)
       self.diffuse:SetFilter(Texture.Smooth)
       self.diffuse:SetClampMode(true,true)
       self.normal = Texture:Create(buffer:GetWidth()*self.resolution,buffer:GetHeight()*self.resolution,Texture.RGB, 0, 1, 0)
       self.normal:SetFilter(Texture.Smooth)
       self.normal:SetClampMode(true,true)

       self.buffer={}
       self.buffer[0]=Buffer:Create(buffer:GetWidth()*self.resolution,buffer:GetHeight()*self.resolution)
       self.buffer[0]:SetColorTexture(self.diffuse)
       self.buffer[1]=Buffer:Create(buffer:GetWidth()*self.resolution,buffer:GetHeight()*self.resolution)
       self.buffer[1]:SetColorTexture(self.normal)
   end

   buffer:Disable()

   if (self.fullquadshader and self.buffer~=nil) then

       --generate fullscreen diffuse, render to a buffer
       if self.onepass==true and self.passes == 0 -- (first frame) dont hog gpu, do a second pass for normals.
       then
           self.buffer[0]:Enable()
           self.fullquadshader:Enable()  
           self.fullquadshader:SetInt("doNormals",0) -- dont calc normals
           context:DrawImage(diffuse,0,0,buffer:GetWidth()*self.resolution,buffer:GetHeight()*self.resolution)
           self.buffer[0]:Disable()    
       end

       --generate fullscreen normals, render to a buffer (second frame)
       if self.onepass==true and self.passes == 1
       then
           self.buffer[1]:Enable()
           self.fullquadshader:Enable()
           self.fullquadshader:SetInt("doNormals",1) -- calc normals
           context:DrawImage(diffuse,0,0,buffer:GetWidth()*self.resolution,buffer:GetHeight()*self.resolution)
           self.buffer[1]:Disable()    

           -- enable model shader and bind buffer textures
           self.diff_shader:Enable()
           self.diffuse:Bind(8)
           self.normal:Bind(9)

           --make sure this is just ran once.
           self.onepass=false
       end

       --enable context buffer and do a passthrough
       buffer:Enable()
       self.shader_pass:Enable()
       context:DrawRect(0,0,buffer:GetWidth(),buffer:GetHeight())

       self.passes=self.passes+1
   end
end

--Called when the effect is detached or the camera is deleted
function Script:Detach()

   if self.fullquadshader then
       self.fullquadshader:Release()
       self.fullquadshader = nil
       self.diff_shader:Release()
       self.diff_shader = nil
       self.shader_pass:Release()
       self.shader_pass = nil
   end
   --Release buffers
   if self.buffer~=nil then
       self.buffer[0]:Release()
       self.buffer[1]:Release()
       self.buffer=nil
   end        

   if self.diffuse~=nil then
       self.diffuse:Release()
       self.diffuse=nil
       self.normal:Release()
       self.normal=nil
   end
   self.onepass=true
   self.passes=0
end

Share this post


Link to post
Share on other sites

Ah, I see. I never thought to fire it off as a post to generate the maps. Thanks for sharing. Makes perfect sense now that I think about it...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...