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

Add f3d material info page #2

Open
wants to merge 10 commits into
base: main
Choose a base branch
from
Open

Conversation

jesusyoshi54
Copy link

Sort of testing this out for now. I'm sure the info is mostly correct but let me know if there is an issue.
This needs some formatting changes to link the page properly and maybe each tab should be separated into a different page idk.

Also I need to update requirements.

@jesusyoshi54 jesusyoshi54 marked this pull request as ready for review March 1, 2024 20:32
@jesusyoshi54
Copy link
Author

I wrote a f3d overview page that is intended for people to understand stuff as it is viewed from fast64 menus.
A color combiner page that goes in depth into how the color combiner actually works and the ins and outs of it. I didn't go into how the sources got into it, but just the actual operation of that unit (I didn't write alpha sources down which I can do later I guess)
A blender page that goes over how coverage, z compare and blending work and where edge mismatches occurs.

These pages may need some additional info but for me they're pretty concise and cover the basics in a precise way. Please correct any errors or inform me of any quirks I missed

Copy link
Contributor

@Dragorn421 Dragorn421 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice

Note RTD is failing to render
https://readthedocs.org/projects/fast64/builds/
https://readthedocs.org/projects/fast64/builds/23620074/
I'm guessing need to add sphinx_design to requirements.txt

also please pin down specific versions in requirements.txt

also x2 it seems you changed line returns from \n to \r\n, please use \n everywhere (and have a trailing \n in files)

@jesusyoshi54
Copy link
Author

yeah the new line thing is probably something to do with windows. I'm not sure exactly how it got in there but I'll fix it.

@jesusyoshi54
Copy link
Author

I have fixed build issues and I also added some patterns to clean up the build so that all the missing file warnings from packages go away

Copy link
Contributor

@Dragorn421 Dragorn421 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

partial review

common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved

* Environment Color: Free use register

* Primitive Color: Free use register. Encoded at the same time as LOD variables but those have no impact on the color.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd get rid of the Encoded at the same time as LOD variables but those have no impact on the color. part and just say something like Primitive Color also has some additional capabilities, but these are not relevant to F3D materials in Blender. Besides the LOD variables, prim color is buffered so that it can be changed between primitives without needing any kind of syncs. This is the only register which has this property.

Comment on lines 62 to 63
Discrete values are adjustable float values between 0 and 1 that you can use for blending or interpolating colors. These are simply factors that you can use to fine tune the contribution of each input to the color combiner. Some registers are created with specific graphical purpose, while others are just for user flexibility.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd add something that the most common "discrete value" registers used for interpolation etc. are prim alpha and env alpha, which are not on this list.


## Z Buffer

Enabling [Z buffer]{.key_text} will make it so that Z buffer calculations are carried out on drawn triangles. This makes it so that triangles can utilize depth checking per pixel if enabled inside the RDP. Disabling Z buffer will change the drawing algorithm of the triangles sent to the RDP to ignore depth. Depth values are never written to triangles in DMEM and when rasterizing depth is never considered for the entire primitive.
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: Disabling geometry mode Z buffer means Z values are not sent to the RDP, so the Z values used in the tri are garbage. This does not mean depth is not considered, if you have Z enabled in the blender, it'll use the garbage values. I'd replace the last part with saying "if you disable this, make sure Z is not used in the blender in your rendermodes".

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this also true for z_src_prim?

common/f3d_materials.md Outdated Show resolved Hide resolved
common/f3d_materials.md Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants