October 21, 2016 at 11:54 pm #4563
New video of lighting in real-time. Still early in lighting development, but I like it so far. 🙂October 27, 2016 at 5:19 am #4657
Got to love Monkey 2 / mojo lighting. 😀
I have incorporated mojo lighting into my framework. For now lighting is either on for everything or off. Non-bumped images seem to work great with it on so I don’t see a problem having lighting setup this way. I’ll bee doing some analytics on the GPU’s performance and make sure the way I’m implementing lighting has no adverse effects.
I’m nearly there with lighting and the only bit that remains is adding a separate list of shadow caster vertices. I was using a collision vertices list for shadow casters but this just is not cutting it.
Anyway checkout the pretty lighting images with bumped images. 🙂 The second image shows lighting scaled in a window (thanks to Mark for the quick fixes).
Attachments:October 28, 2016 at 9:43 pm #4684
For those following lighting. I did some testing on lighting and GPU usage. Lighting, when used judiciously yields very acceptable results. In testing my demo of Alien Phoenix (1080p) with per-bullet lighting off (impact and other lighting is on) results in a 15% GPU usage on my GTX 950. Adding in per-bullet lighting quickly spikes usage and with 100 or so lighted bullets the GPU usage will zoom to 65%. This of course is to be expected and I can see that every bullet cant be lighted, at least for my Phoenix USC game project where I would expect in some scenes 100’s of bullets to be in view.
I’ve added some fake lighting to the bullets which when combined with impact lighting (a real light) looks and feels just fine. My plan is reserve per-bullet lighting to special weapons that tend to be a single bullet object.
All in all I am ‘very’ happy with the results using Monkey 2’s lighting framework. It is way easy to use and really makes a project pop visually.October 29, 2016 at 12:13 am #4686
Adding in per-bullet lighting quickly spikes usage and with 100 or so lighted bullets the GPU usage will zoom to 65%.
That’s still pretty cool!
My plan is reserve per-bullet lighting to special weapons that tend to be a single bullet object.
If it’s a rapid fire type game, how about using a real light for the first bullet fired after some timeout, eg: 1 second? Would make the ‘head’ of the bullet stream stand out a bit.October 29, 2016 at 4:35 am #4692
That’s still pretty cool!
It is! Mojo’s lighting performance seems to be outstanding. I’m anxious to see what performance I get on Android. 🙂
how about using a real light for the first bullet fired after some timeout, eg: 1 second?
I will do some experimentation and see what I can come up with. The issue will be the independent nature of each bullet entity as each bullet is free to move independently with it’s movement guided by inertia physics. Unlike a lot of games where the bullets fly in a straight path, my approach (and Subspace) let’s the bullets move according to the environment. With soon to come features like repel (a staple of Subspace/Continuum) bullets are likely to move in all sorts of directions. This limits some of the trickery I can pull off.
But, the fun for me is in coming up with ways to overcome the limitations of hardware and whatnot. So I bet with a little research and thought I can come up with something cool. 🙂 Speaking of which I’m am at the moment experimenting with light to give the asteroid field a bit more depth. Since I use layers of map spaces (one drawn on top of the other) I am fairly sure I can pull of a really nice depth and lighting effect for the background elements. I have to say, having lighting in the mix really opens up a path to custom styling and just enhances the overall look of a project. I’m loving it! As soon as I started posting images of lighting implementation I noticed a definite up-tick in interest from followers. It seems eye candy does help sell a project. 🙂November 1, 2016 at 3:31 am #4715
Fun with light. 🙂
Starting to get a handle on making normal and specular maps. The normal and specular maps used in the attached images were done with Gimp and a normal map plugin/filter. Gimp does a good job rendering the normal maps. I can also easily make specular maps in Gimp.
I have also started to implement layered lighting in my framework. This is turning out to be fairly easy as Monkey 2’s lighting architecture makes it easy. More about this soon.
Attachments:November 6, 2016 at 7:07 pm #4823
Look for the Linux Mint logo on all upcoming videos. I just got an email form Clement Lefebvre ( founder of the Linux Mint distribution ) authorizing it. 🙂
I’ll be using the Mint logo with the phrase ‘”Developed on Linux Mint”.November 7, 2016 at 2:16 pm #4848
I have some cone style lighting going with Marks latest additions (light rotation) to Monkey 2’s lighting framework. Here shown with a spinning red and yellow beacon. I’m in the process of reworking my frameworks architecture to fully accommodate Monkey 2 lighting features. So far so good.
Attachments:November 8, 2016 at 1:26 pm #4862
Wow, bright picture!November 8, 2016 at 2:15 pm #4863
Wow, bright picture!
Thanks? Too bright?
Here are two images with two spinning beacons. One with no impact lighting and the other with. The issue I am having at the moment is getting the lights to bleed (render) on screen (current map view on display) when they are not on screen (say slightly off screen). It’s a fairly simple thing to account for but requires a little retooling on my part.
It sure is fun to play around with lighting.
Attachments:November 10, 2016 at 2:38 am #4884
Bright = saturated colors.:)
I surprised at quality of picture!November 10, 2016 at 4:26 pm #4893
Aww. 🙂 Thanks!
I am sure some know this (just FYI) but you can use numbers above 1.0 for the color variables for lights. For example:Monkey12canvas.image.Color=New Color(4.0,4.0,4.0)canvas.AddLight( image, x, y, rotation )
When you use numbers above 1.0 it will increase the saturation of the light. I find this useful for game effects and balancing lighting.December 7, 2016 at 3:35 am #5630
I have a cool new video of my latest progress posted . . . here.
I’ve added better lighting support and this video shows off some of the results you can achieve with Monkey 2 lighting. I have added new floor and wall assets that are bumped and really help with the overall lighting effect. I also have 2 asteroid map space layers receiving lighting effects. This allows for some under lighting which adds depth. Oh, and spinning lights and lighted ships! 😀
I’ve also included a view of the new map resource toolbox I’m working on. It is part of the in-game editor I’m working on for Phoenix USC. It uses a topmost or pinned window which this frameworks GUI now supports. So in addition to windows you can cast to the background screen the framework now supports topmost windows. The toolbox features collapsible components based on a button and a list box for a combo’ish box style. I have been working on smoothing out the GUI code and refining it. Adding features as I improve Phoenix USC.
Still a lot to get done but I’m making progress. 🙂January 21, 2017 at 12:11 pm #6700
Good news. I have decided to release the GUI portion of this project as open source and free to use. It will still be some time before I finalize the GUI’s framework and provide documentation and examples. But, I will be working on it exclusively and post it on GitHub as soon as it is in a state for use. Once available I will be improving and adding features making it a work in progress, as at first it will be providing a limited feature set. My goal is to get it out there and open it for peer review, modifying code where possible as architectural conciseness is formed. I’ll provide a good start and try to tailor it to suit the needs of the community.
I hope you will find this GUI as useful as I do and I look forward to see it used in Monkey 2 games. Stay tuned. 🙂June 25, 2017 at 8:54 am #8911
I’ve been busy lately and you can read about why on the Phoenix USC FaceBook page.
I will be setting up a repository for this project on my GitHub page soon. At first code posted will be very much in a prototype state, but, it will also function well enough for experimentation. I will be catching up on Monkey2 changes I’ve missed and adapting code. I will post here when I have some code up.
You must be logged in to reply to this topic.