Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New render styles #4276

Open
reelpilot opened this issue Jan 17, 2024 · 9 comments
Open

New render styles #4276

reelpilot opened this issue Jan 17, 2024 · 9 comments

Comments

@reelpilot
Copy link

reelpilot commented Jan 17, 2024

Is your feature request related to a problem? Please describe.
Effects using default and per preview render styles are applied differently to a submodel group when there is more than one copy of a prop in that group compared to just a single copy of the prop.

Describe the solution you'd like
When only one of a a prop exists you can sometimes get the desired effect on a submodel group using default and per preview render styles. The problem comes when you have two or more of the same prop or are trying to share the sequence with someone who has two or more of the prop. In that case the default and per preview render styles produce a completely different effect than the original. The solution would be to create a new render style for default, per preview and potentially single line, that would apply the effect to multiple copies of props as if there was only a single version of the prop in the layout. A proposed name would be default per model, per preview per model and single line per model.

Describe alternatives you've considered
While sometimes you can somewhat approximate the desired effect using other render styles and settings, there is no way to get the exact same effect using and of the current render styles. You can make individual groups for each copy of a given prop, but this adds to a glut of groups and makes sharing sequences done in this manner confusing. A simpler solution would be to achieve the results with the proposed render styles as then it would not matter how many copies of a prop a person may have.

Additional context
A video showing the render style problem can be found here.
https://youtu.be/UTHN7GZ3BG8

@dkulp
Copy link
Member

dkulp commented Jan 17, 2024

Not able to reproduce. Per Model Default is doing exactly as expected:
Screenshot 2024-01-17 at 5 47 06 PM

@reelpilot
Copy link
Author

In your example then yes per model default works since your test group contains the whole model. What I'm describing is when you are trying to apply the effect to a group containing submodels. In that case the per model default applies the effect to each submodel and not to the collective group of submodels like default would in a single prop scenario. In that case per model default is working as it always has been, but what I'm suggesting is a new render style that would apply the effect to the collective group of submodels the same way that it gets applied when there is only one model.

@derwin12
Copy link
Collaborator

Do you mean per model default deep?

@reelpilot
Copy link
Author

No, per model default deep does not produce the effect.

Another way to think of it is that when you have a single copy of a prop, the center point for default and per preview effects is the center of the single prop. However when you have multiple copies of a prop, the center point is now the midpoint of the collective groups of props, which is why default and per preview look completely different. All the current per model render styles will render on each submodel within the group as a separate entity as opposed to looking at them as a whole collection. My proposed new render styles would look at a group of submodels as a whole collection as if the combined sum of pixels in the submodels were a whole prop regardless of the number of copies of props one may have.

@AzGilrock
Copy link
Collaborator

So it would have to inspect all the submodels and group them based on their parent and then create dummy models for each parent's collection of submodels for rendering.

@reelpilot
Copy link
Author

As someone who is only a user of the software I don't know how difficult it would be to implement something like this or how much time it takes. I'm just trying to describe the enhancement clearly so you guys understand the request and how it would add another sequencing tool for users.

I think what you're saying Gil is correct, but maybe there is an easier way. In the layout tab when you select a group it highlights all the pixels that are within that group. So basically it already shows what the dummy model looks like. Here's an example on the Rosa Grande using the Torch Long group. Each prop has 24 torch submodels that make up the group and what is depicted on the screen when the group is selected is all the pixels and the center point. So basically this new render style would capture what is highlighted on each prop and apply default or per preview render styles to each prop separately vs the current practice of spreading the effect across both props
.
Screen Shot 2024-01-18 at 2 44 14 PM

@MrPierreB
Copy link
Contributor

MrPierreB commented Jan 19, 2024

It is working exactly as expected.
If you are applying the effect to a group which contains submodels, it is treating each item in that group as a model,

This comes back to when people were arguing over if you should have 1 submodel (lets say spokes) with many lines(each defining a spoke) vs having a submodel for every single spoke.

Here I have put a pinwheel on a submodel group for the rosa grande spokes. and it is per model preview. the effect is correct.
This is because I have a submodel called spokes on grande 1 and a submodel called spokes on grande 2, then i have a grande spokes test group which has those submodels in them. As most GE props will have a submodel per spoke, you can easily create this combined submodel by selecting all the spokes, right cliick and select Join.

Submodels

Certain effects work without the need to join them, but others will need them in this way.

@AzGilrock option of doing those dummy models would work as well, but will require the dev work to make them work if you do submodels a certain way. Where the joining them into a single submodel is already there and working.

@AzGilrock
Copy link
Collaborator

Yeah thinking about it I'm not sure I'm in favor of a new render style that tries to treat submodels as if they are in a different category. As Pierre shows you can accomplish what you want without any code changes. When it comes to model groups the models and submodels were intended to be treated as equal. If other devs have a different opinion maybe it will happen. I already have a backlog of ideas I want to work on in my head.

@reelpilot
Copy link
Author

Thanks you guys for the feedback. I'm aware that the current render styles are working as expected which is why I have this tagged as a feature request. Treating each item in a group as a model is probably the biggest reason why we can get some fantastic looking effects in these HD props with complex submodels.

I was not aware of the ability to join the submodels and effectively create one submodel that contains all the individual submodels. When I did that I can replicate the effect using per model per preview as was shown here. While I can use that as a work around, having to go through and do that to a large number of submodels across many different props is time consuming. Then the render order of all these new groups needs to be set edit display elements to match the current render order hierarchy.

If a sequence is created using those steps and then shared with someone, that person would have to know how to import the new submodels to their prop, get those new groups added and set their render order. I'm not sure if the average user of xLights knows how to do all of that. So I still think there is merit to having a new render style that creates the dummy models so there is no advanced work on the user end to get the results on a shared sequence. That way the effect would work using the existing submodels and when a sequence is imported, the changes would be invisible to the user. The only clue that anything is different would be seeing a new render style on an effect. I realize this is probably a lot of work for the devs and perhaps the juice isn't worth the squeeze for them. However from a user standpoint I think having this effectively be invisible makes this work with the lowest common denominator user and gives a new tool that sequence creators can use to create new effects.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants