-
Notifications
You must be signed in to change notification settings - Fork 1
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
SA2 Event - Add Remaining Event Entry Flags #37
Comments
Now that the new flag names have been in place for a bit, we've been able to see how users actually percieve them. Because of this, I've noticed some confusion with some of the names originally chosen (sorry!) and I have some suggestions to make things clearer; without users needing to have an in-depth knowledge of the SAIO manual or the Ninja API. Here are my suggestions for names and descriptions, and why:
There's already been a few people confused why certain flags won't apply on their model, believing this setting to only apply to environment maps. Perhaps the devs used it this way, however for users it's better to make it more clear that this setting has wide reaching effects on how materials are drawn.
The suggestion needs more work, but it's an okay start. It's also useful to note how this flag is ignored when an entry has a motion attatched.
I haven't personally seen any confusion over this, however calling them
It might be best to put this flag behind a toggle, similar to the advanced node flags, as this setting doesn't really serve any purpose not covered by the other settings. It really does seem like a quick fix the devs threw in to speed up performance without having to worry about changing other specific flags. The common change I'm suggesting is switching |
I recently decompiled the Event rendering code and managed to confirm the use of each flag. Rewriting the PC Event draw functions to correctly apply these flags, and emulating the original DC draw functions, produced results that exactly match Dreamcast with both the original DC event files from disc and the vanilla PC events. This allows us to safely assume the flags are the same across all versions.
Here are the flags with descriptions of what they do:
Notes:
DrawMotion
andDrawShapeMotion
are decided based on if the motion and shape data are present, with shape requiring both.EasyDraw
variants don't support environment maps, diffuse on textured materials, or backface culling. It is the fastest draw function on DCSimpleDraw
variants support env maps and backface culling, but not diffuse on textured materials. On env mapped materials,Simple
applies diffuse, butSimpleMulti
does not.MultiDraw
allows for multiple lights, up to 6 (events use 4), to be used on a single model; otherwise only 1 light can be used. BothMulti
and non-Multi
functions use only 1 ambient value, butMulti
supports an arbitrary ambient color while non-Multi
functions only support the ambient being a multiple of the light color.LIGHT#
flags it will useMultiDraw
, if it has none it will use the nonMulti
variant with light 1
NOFOG
only works for models with no motion data, and overrides theHASENV
,USESIMPLE
, andLIGHT#
flagsMODVOL
overrides everythingUSESIMPLE
is the strangest of the flags, as everything in the base scene seems to use it, even if it also usesNOFOG
or even aLIGHT#
flag. It's not aSTATIC
flag, as some entries use it even though they are animated, it's not aNOMULTI
flag as most other entries just disable all theLIGHT#
flags, and it's not a back face culling thing either asNOFOG
forces EasyDraw and skyboxes often use both. So, I stuck withUSESIMPLE
for nowIf there are any other questions, I'll try my best to answer them!
The text was updated successfully, but these errors were encountered: