0% found this document useful (0 votes)
20 views7 pages

Minecraft Rendering and GUI Updates

Uploaded by

megaandroid2002
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views7 pages

Minecraft Rendering and GUI Updates

Uploaded by

megaandroid2002
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

1.20.

6
- VertexConsumer
- DebugScreenOverlay
- BakedGlyph
- SkinCustomizationScreen
- TitleScreen
- Gui
- ModelPart
- HumanoidArmorLayer
- WolfCollarLayer
- ItemEntityRenderer - Forge patch, needed ???
- Lambda reformatting comments in SpriteLoader and other
- GameRenderer, LevelRenderer - new PosStack()
- SectionOcclusionGraph - Removed temporary blockpos3, mutable
- [Link]
- GuiChatOF

1.20.4
- GameRenderer - Forge reach distance, camera update later, updateCameraAndRender
partialTicks/f/f1
- Buffer caching with multi-layer models (MultiBufferSource)

1.20.2
- Lagometer OFF
- Use getMaxChunkY()
- Chunk occlusion culling
- Shaders menu (list colors)
- Custom font width
- Capes, elytra

1.20.1
- Custom font widths
- AA with Forge

1.20-pre4
- BitmapProvider !!!
- Font -> GuiGraphics ???
- ItemRenderer -> GuiGraphics ???
- LevelRenderer - fix ChunkPos allocation, now SectionPos
- ChunkMap - part moved to ChunkLevel
- DynamicGraphMinFixedPoint -> LeveledPriorityQueue
- Mappings - GuiGraphics, LightEngine
- Minecraft - grabPanoramixScreenshot(), grabHugeScreenshot()

1.19.3
- Matrix3f, 4f
- ClientTelemetryManager
- PoseStack
- SheetedDecalTextureGen - broken invert?
- ChatComponent - bug on refresh
- ModelPart - compile (vertex transform)
- Frustum - all
- MissingTextureAtlasSprite
- TextureAtlas
- TextureAtlasSprite - makeShadersSprite (resizing)
- Stitcher
- LevelRenderer - check 768m, immediate updates
- ModelBakery - all
- PaintingTextureManager
- AbstractPackResources

1.19.1
- reloading chunks chat message

1.19
- ItemFrameRenderer Forge patches
- LevelRenderer - updateCameraAndRender -> sky
- Chat width scale
- BiomeCategory -> BiomeTags
- Buffer uploader -
- Slider - adjusting
- BossHealthOverlay - getBossName()
- BitmapProvider - offsetBold
- FontSet - memory allocation

1.18.2
- Fog start
- LevelRenderer - 500ms frustum update

1.18
- Frustum
- LevelRanderer - maxChunkY, getRenderChunkOffset(check Y), loadAllRenderers
- BiomeUtils - biomes
- CustomColormap, ShaderParameterFloat - [Link]()
- IForgeRenderChunk, [Link]()
- ShaderInstance - attribute indexes

1.17.pre4
- LoadingOverlay
- bar colors
- LiquidBlockRenderer
- check "shaders face brightness", if needed
- CrashReport
- forge patch
- TitleScreen
- forge patch
- ParticleEngine
- barrier particles

21w10a
- LightTexture
- GL_CLAMP_TO_EDGE
- NativeImage
- GL_CLAMP_TO_EDGE
- Blender
- setup blend
- DefaultVertexFormat
- set names
- RenderType
- HALF_ALPHA - OK (not needed)
- remove lambdas
- RenderStateShard
- TextureStateShard - use bound texture
- Mappings
- TextureStateShard - cutoutTexture/texture
- VertexFormat - constructor
- GlStateManager
- forge patches
- LevelRenderer
- renderSky() - sky size to match render distance
- renderBlockLayer - render calls, regions, draw optimizations, etc.
- Fog
- remove render distance fixes depending on fog type
- fog is always radial

21w08b
- BufferBuilder
- sorting - OK
- multi-texture - OK
- getNextBuffer() - OK
- mode triangles - OK
- BufferUploader
- shaders - OK
- multi-texture - OK
- VertexBuffer
- regions - OK
- multi-texture - OK
- memory allocation in bind() - OK
- OptionButton
- renamed - OK
- ModelPart
- CEM - OK
- texture parameters - OK
- ClientLevel
- forge patch removeEntity()
- Option
- graphics option check fabulous - OK
- GUI_SCALE fix normalizeAngle - OK
- Options
- forge patch KeyModifier
- detect save/load in process() - OK
- chatWidth save as float - OK
- ItemOverrides
- all patches
- BlockEntityRenderer
- from abstract class to interface - OK
- SignRenderer
- forge patch
- ChunkRenderDispatcher
- forge patch blockHasTileEntity
- EntityRenderDispatcher
- forge patch
- ItemFrameRenderer
- forge patches
- ItemRenderer
- forge patches
- durability colors - OK
- ItemInHandRenderer
- forge patches
- Mob
- forge patches
- LevelRenderer
- render entities by type - OK
- renderInfosEntities - OK
- VideoSettingsScreen
- gui scale - OK
- DyeColor
- forge patches
- MushroomCowMushroomLayer
- custom model - OK
- TextureAtlasSprite
- forge patches
- ChunkVisibility
- CIMM - OK
- min/max height - OK
- ChunkOF
- world height - OK
- makeChunkData - OK
- Velocity map - OK

TODO 1.16.2
- ChatOptionsScreen
- VideoSettingsScreen
- GuiDetailSettingsOF

TODO 1.16
- debug screen chunk updates
- patch FontRenderer
X chat shadow
X patch ResourceLoadProgressGui
X patch VideoSettingsScreen
X patch BipedArmorLayer
X patch PlayerModel, CapeLayer for cape patch
X FluidBlockRenderer - face brightness from BlockState
X RenderType - new types
- [Link]() - iteration
X I18n patch, Forge hooks
X ClientWorld Forge patch
X IntegratedServer patch
X Lang reloading resources
- CEM zombified_piglin (from zombie_pigman/pig_zombie)
- mappings
- ItemRenderer getBufferGlint()
- func_235904_r_,getProperties
- func_235901_b_,hasProperty
- StateHolder (properties)
- Registry, RegistryKey
- [Link]/getDimensionType
- SRespawnPacket, SJoinGamePacket
- func_241113_a_,setClearWeather
- ServerWorld func_241114_a_,setDayTime
- TileEntity: getMaxRenderDistanceSquared -> getMaxRenderDistance

TODO 1.15
- CEM not existing ender_crystal_no_base, ender_chest

Shaders (1.14 to 1.15)


- void rendering
- 1.14 leash has no lightmap
- normalmatrix for mooshroom mushrooms, particles (1.14 is also strange)
- at_tangent on entities/block entities
- calculate normal, at_tangent and midtex only when used by the shader pack

FIXME 1.15
- fix for 1.14 shader packs in 1.15
a) switch TU 1 (lightmap) and 2 (normals)
b) replace gl_TextureMatrix[1] -> gl_TextureMatrix[2]
c) replace gl_MultiTexCoord1 -> gl_MultiTexCoord2

Check
- GlStateManager - display list methods
- multi-texture (AA/AF) with VBOs
- ClientChunkProvider - move ChunkDataOF check in [Link]() ...
- AbstractChunkRenderContainer patch !!!
- Replace [Link]() calls with [Link]
- BlockModelRenderer - separateAoValue, fix update
- BufferBuilder - shaders hooks
- ChunkRender
- patch preRenderBlocks()
- duplicate playerUpdate
- ClippingHelperImpl
- isBoxInFrustumRaw() - creates 6 vectors per check !!!
- EntityRenderer - patch bindEntityTexture()
- ArmorLayer
- renderArmorLayer() patch before bindTexture() and before
renderEnchantedGlint()
- renderEnchantedGlint() patch
- LivingRenderer
- is fix for spider eyes z-fighting still needed ???
- setBrightness() patch for [Link]()
- RenderModel - display lists
- RenderModel - CEM changes
- Vertex size 28 -> 32, shaders 56 -> 64
- TextureAtlasSprite patch
- Tile entity renderers: BeaconTileEntityRenderer,
- Shaders patch "[Link]/disableFog()" to be called by
[Link]/disableFog() - port to 1.14.4 and below
- Shaders patch "[Link]/disableTextue2D()" to be called by
[Link]/disableTexture2D() - port to 1.14.4 and below
- [Link]() to use matrix parameter
- WorldRenderer draw horizon patch
- WorldRenderer updateChunks() update chunks with needsUpdatePlayer() delayed
prioritized ???
- WorldRenderer patch for [Link]/endBlockDamage(),
drawBlockDamageTexture(), drawSelectionBox()
- WorldRenderer patch drawBoundingBox() to be shaders friendly
- WorldVertexBufferUploader patch
- BiomeColors patch
- FirstPersonRenderer - renderOverlays()
- ItemRenderer - renderEffect()
- [Link]() - fast render
- AtlasTexture - missing texture
- [Link]() - the path is not being fixed at all
- ChunkCacheOF - cache biomes, light caching

Moved
- ChunkRender -> [Link]
- Compiledchunk -> [Link]
- EnderDragonEyesLayer inlined in EnderDragonRenderer
- EndermanEyesLayer rendering moved to AbstractEyesLayer
- SpiderEyesLayer rendering moved to AbstractEyesLayer
- RendererModel -> ModelRenderer

Removed
- display lists, always VBOs
- direct rendering, always FBO
- BakedQuadRetextured
- LayeredColorMaskTexture
- VboRenderList
- CEM models: BannerModel, BedModel, ChestModel, EnderCrystalModel
- CEM offsets: ox, oy, oz

TODO 1.15 and below


- [Link]() to call [Link]()
- All configuration lookups iterating over numbered files (CustomSky, etc.) to
use [Link]()

TODO 1.14 and below


- ChunkManager patches (1.13 PlayerChunkMap): view distance 64, lazy chunk
loading
- Fix handheld items with external dynamic light (torch on ground)
- Remove all Reflector references to Config to avoid early initialization
- CustomSky - fix source texture parsing to use correct path
- [Link]() to check if the resource exsists instead
of catching FileNotFoundException
- Remove [Link] ???

TODO 1.14.4 Forge patch ModelBakery: this.field_217850_G.put(triple, ibakedmodel);


!!!
TODO Preserve unknown game settings (helps when testing older versions)

TODO shaders shadowmap backface culling only on chunks between the player and the
sun/moon ???
TODO Optimize dummy shader patches - uploadTexture/Sprite, generateMipmaps, etc.
some are proxies which are not needed
TODO optional delayed near updates ???
TODO Remove unused textures on texture reload (ResourceManager)
TODO Font renderer with degenerate triangles
TODO Fix sharp void/sky transitions on y = 62/63 (3 sec transition instead?)
TODO Remove own particles (around the player), option Particles = ON/Other/OFF
TODO Fix ghost water/lava ???
[Link]
[Link]
TODO Optimize entity rendering, one render call (GL list) per set of rotation
angles

To check
- DynamicTexture (normal, specular)
- [Link]() working with server resource pack
- main menu panoramas (blur)
- BlockFluidRenderer - farmland, half-slab rendering
- BlockFluidRenderer - biome smoothing
- UTF-8 for all ".properties" files (NBT name matching)
- FontRenderer
? Fix overlapping characters (Misa uses slightly overlapping characters to
condense the font)
? check "enabled"
? Forge fix unicode shadow
- TileEntity custom name synchronization
- TileEntitySkullRenderer model renderers (CEM)
- resource location parsing to match "doc/properties_files.txt"
- profiler smoothing depending on FPS

Old -> New


- WorldProvider -> Dimension
- BlockStateBase -> BlockState (for the block ID cache)
- IBlockProperties -> IBlockState (interface)
- IWorldNameable -> INameable
- ModelHorse -> ModelHorseArmorBase
- [Link](pos) ->
[Link]([Link].MOTION_BLOCKING, pos)

New changed
- NativeImage

1.14.4
[Link]()

Common questions

Powered by AI

Replacing display lists with Vertex Buffer Objects (VBOs) generally improves rendering performance because VBOs allow data to be stored directly in GPU memory, enabling faster access during rendering . This can lead to increased efficiency and dynamic data updates but may require more complex management within the application code .

Integrating `setBrightness()` with `Shaders.setEntityColor()` can streamline the rendering process for entities by ensuring consistent brightness settings are used when coloring entities . This enhances visual consistency and potentially reduces visual artifacts during rendering, but may require additional shader logic to accommodate different environmental lighting conditions .

Shader patches are crucial in refining lighting and texture to enhance realism in virtual environments. They allow for detailed control over light behavior, reflectance, and texture handling under varying conditions . By enabling or disabling specific shader features, these patches can optimize rendering performance and visual fidelity, creating more immersive and dynamic scenes .

Improvements in chunk occlusion culling techniques can significantly boost game rendering efficiencies by reducing the number of chunks that need to be processed and rendered, focusing resources only on visible or potentially visible portions of a scene . These advances can decrease rendering time and resource use by identifying and skipping occluded or off-screen objects .

The shader patch "Shaders.enable/disableTexture2D()" plays a key role in managing how textures are applied in graphic rendering by controlling the engagement of two-dimensional textures during different stages of the render pipeline . This control allows for enhanced handling of texture resources, reducing unnecessary computations, and allowing for more flexibility in rendering diverse visual effects, which can greatly impact graphical performance and visual output quality .

Implementing custom font widths in GUI applications allows for precise control over text layout, which can improve readability and aesthetics . However, it can also complicate text rendering logic, potentially leading to mismatches in expected text lengths and required space, thus impacting UI consistency .

Dynamic graphs can improve render performance by enabling more efficient data handling and prioritization, such as using structures like LeveledPriorityQueue to manage render tasks based on their importance or distance from the camera . This can reduce computational overhead and improve frame rates by ensuring the most critical tasks are processed first .

Transforming `ChunkRenderDispatcher.ChunkRender` and `ChunkRenderDispatcher.CompiledChunk` helps optimize rendering performance by enabling more efficient management of chunk data and rendering processes . This approach enhances scalability and responsiveness in large-scale environments by optimizing the use of GPU resources, improving rendering throughput and reducing latency in processing large volumes of terrain or object data .

Managing buffer caching within multi-layer models involves ensuring efficient memory use and synchronizing data across different layers . Challenges include preventing data corruption and ensuring coherent rendering across layers. These can be mitigated through careful buffer management strategies such as synchronization mechanisms, using MultiBufferSource techniques, and implementing robust memory handling and allocation practices .

Increasing the vertex size from 28 to 32 allows for more data to be stored per vertex, which can enhance shader flexibility and processing capabilities . This change can lead to better rendering of complex models but may increase memory usage and necessitate adjustments in shader code to handle the additional data .

You might also like