Sean Meighan
Software => Enhancement Requests => Topic started by: MrRocketman on February 19, 2017, 12:56:18 AM
-
I'm sure this has been asked a million times before, but are there any plans in the pipeline for 3D models and effects? Don't shoot me for asking haha. I've haven't heard it talked about recently but I'm pretty sure it's taboo since it would probably entail a complete rewrite :)
Anyways, any thoughts or info or a direction to start researching would be greatly appreciated. Thanks!
-
The question comes up time to time and the answer has always been no. There was a recent thread about simulating 3d effects but nothing I can remember about developing an actual effect.
Sent from my Nexus 6P using Tapatalk
-
I haven't seen a need for it.
-
The professional consensus is that if you need 3d, you can afford the software that was written in 3d, e.g. Madrix. Otherwise you figure out how to do it in 3d and just close your eyes and imagine it.
Now being able to do some virtual reality headsets and walk through your display or sequence with hand motions, might be fun.
-
Most the people that ask for this don't even have any props that can use it. I've never thought things like a 3D cube matrix looked that great. I haven't seen any of you have one in their yard. If all you have is something like a sphere then that can easily be done in 2D just like a map of the earth can lie on a table. If Sean wants to change the arrangement such that we are selling the program I'd be glad to dump more time into features like this that I don't need.
-
Yeah I'm looking at a 3d matrix. Not a perfect cube though.
Didn't know Madrix existed. Holy crap is it expensive! I'd love to support more development of XLights, but not at the price point of Madrix! Or if I find time maybe I'll take a crack at the code.
Sent from my iPhone using Tapatalk
-
I'd love a dollar for every time someone said they would take a crack at the code.
-
A wise xlights developer once told me that most of the people that take a crack at the code don't contribute it back.
-
A wise xlights developer once told me that most of the people that take a crack at the code don't contribute it back.
I for one am thankful for that, we don't need code with cracks in it. :)
-
We have plenty of that already.
-
I built a 9x9x9 pixel cube a year and a half ago - 729 pixels in < 1 cubic meter. I created a 3D model in Xlights, an isometric projection of the planes, and mapped some 2D effects on it and got some so-so results. I did take the time to create one 3D effect - near the end of the video. Looked better but not enough to compel me to incorporate the prop into my display. I turned it into three 9x27 matrices instead.
Test video: [url][https://vimeo.com/user15456920/httpsvimeocom9x9x9pixelcube/url]
-
What exactly do you mean by
I did take the time to create one 3D effect - near the end of the video.
Did you write new code? Or just use the existing effects on the 2D matrices?
Also, is there a general process for adding new effects to XLights? Or do I just start digging? I definitely won't have time to do full 3D, but I want to at least try to add some effects that work on a 3d matrix.
Sent from my iPhone using Tapatalk
-
Sean did a video last year showing how to make your own effect, I would dig for that first.
-
Sean did a video last year showing how to make your own effect, I would dig for that first.
https://vimeo.com/138371241 (https://vimeo.com/138371241)
-
First thing is you need to actually build the code. Not much use asking for other info until you get past that hurdle.
-
Awesome thanks for the video link. Exactly what I was hoping for. Working on building the source now.
Sent from my iPhone using Tapatalk
-
What exactly do you mean by
I did take the time to create one 3D effect - near the end of the video.
Did you write new code? Or just use the existing effects on the 2D matrices?
Also, is there a general process for adding new effects to XLights? Or do I just start digging? I definitely won't have time to do full 3D, but I want to at least try to add some effects that work on a 3d matrix.
Sent from my iPhone using Tapatalk
Steps are like this
1) Pull down latest copy of xlights from github
2) Follow README.windows, README.linux, README.osx depending on what platform you will develop on.
3) Follow steps and pull down wxwidgets and codeblocks. Build libraries, modify paths
4) open xlights.cpb in xlights sub folder. this should launch codeblocks with the windows project file.
5) Select "Mingw Release" from middle pull down.
6) Press F9 and wait 10-15 minutes.
You should see xlights launch. This will take many hours to get all of this stuff configured. please note any discrepancies in our documentation. it was last updated maybe 1-2 years ago. we will correct anything that is no longer true.
congrats you now can build it
To add an effect look for some of the simple effects like ON, OFF, butterfly
look at the file structure we use. when building new effects you also have to build an icon for them. i use iconfx.
develop in your own branch.
General rule is to not break any existing effects or functionality. adding new effects is pretty isolated so is a good start. Look at effects that have state like snowstorm. These effects have to know what was happening in the rpevious frame.
Always remember your code needs to compile under windows, linux and mac. No os specific stuff, or if it cant be helped sandwich code with ifdef. the developers (Gil, Keith, Dan) frown on too many of those.
-
What exactly do you mean by
I did take the time to create one 3D effect - near the end of the video.
Did you write new code? Or just use the existing effects on the 2D matrices?
I considered writing something but ran out of time, so in the end I Flinstoned it. To test my concept, I treated each of the 9 planes as a 9x9 matrix and manually adjusted the position & timing of the effects on each plane to give me the desired result.
The way I thought of implementing it was to create a function that applied a transform (user-specified shift, rotate, shrink, etc.) to an existing effect from one layer to the next. Instead of creating a 3D model, I was going to create a 3x3 matrix of the 9x9 planes and apply the effect on the first 9x9 submatrix, transform it apply it to the second and so on. The effect would then look 3D on the isometric projection I created in the layout. I didn't think it all the way through but I thought that way all current effects would work as they do on any matrix. I also considered using something like the current fade in/out to control timing of effects across each plane. I know there are better ways of doing this but this seemed fairly simple to write by comparison and should work on any rectangular 3D object.
Since I looked at this, there have been several enhancements to Xlights that appear implement all the base transforms, so it may be a lot simpler to implement today than a couple of years ago.
-
I really think we need entire 3D layout support before its practical to have 3D effects. It would take a huge amount of rewriting.
-
Do I get my dollar?
-
Do I get my dollar?
American or Australian? ;D
-
Do I get my dollar?
Sure, send me your paypal address and I will send you the $1.00 aud, that's what $0.60 American these days?
-
How do I go about submitting a pull request? Seems I need to have permissions. I dipped my toes in by fixing a small bug in the single line effect.
Sent from my iPhone using Tapatalk
-
I didn't think you needed permissions to create the pull request. Only to do the merge.
-
I didn't think you needed permissions to create the pull request. Only to do the merge.
You dont need to do a pull, just download the zip of entire code.
-
Ah well duh. Guess I had to fork it first. Pull request submitted.
What's the process for becoming an actual contributor on the main repo? Submit more good pull requests? Ha
Sent from my iPhone using Tapatalk
-
Well I think Dan will need to review that change since I believe he wrote SingleStrand effect. Just remember one man's bug is another man's feature. You could be altering behavior for others that have fine tuned exactly how they wanted their SingleStrand effect to look. That's the hardest part of implementing changes in our code base. You can't just alter things without considering backwards compatibility.
-
our dev team is made of three main developers: Gil Jones, Dan Kulp and keith Westley. We do not meet and discuss what a developer wants to do, the general rule is to not change behavior of previous effects unless they are bugs.
The 40 or so effects have primary owners. For example Chris Debenham enhanced the pinwheel effect so it would save 4 times faster (performance enhancement) and also eliminated the holes that occurred on the outside edges of large models. Both very good things, unfortunately this changed the behavior of the pinwheel effect. People had bought sequences from Lilia for Pentatonix's Hallelujah. The highlight of that sequence was a pinwheel effect that created a cross. The new pinwheel code dropped one arm of the cross.
Testing that our changes do not break behavior but still allow for performance improvements is one of our challenges.
Cleanest thing for new developers to the team is to create a new effect (try downloading Madrix and using their demo code to get some ideas of effects that we might add). Also finding a real bug is a good start too. We just need to make sure the idiom "You always create a defect when you solve one" has been tested.
What is your git hub user? I will add you to the team. You can then work in your own branch.
-
Okay great. Thank you for the info. I'll branch and work on a new effect!
My GitHub username is MrRocketman.
Thanks!