以下为Optifine最新预览版的更新日志:
复制代码重点:
缓冲区数量从8个翻倍到了16个(不过需要电脑支持,Mac被锁死了8个)
添加了shadowcomp(Shadow Composite,阴影后处理)与prepare(预处理)两个处理步骤
(对光追光影可能相当有用)添加了shadowcolor的一些功能的开关(每帧刷新缓冲区,RGBA颜色深度等等)
首先是缓冲区翻倍,如果有人写过光影的话应该感受到了原来8个缓冲区带来的限制(8个确实太少了),以至于一些光影(例如PTGI)把一些缓冲区设置成了RGBA16位甚至是32位(默认8位)来把多个数据存储在一个缓冲区。多了8个缓冲区对一些光影来说可以减少打包解包数据带来的性能消耗,而对于更偏向于高配的光影来说可以存储更多数据(例如Continuum RT在之前甚至把一些着色器内的深度缓冲区/阴影缓冲区拿来存储自定义数据)。新的colortex从colortex8开始,到colortexF结束,末尾数字为删去0x的十六进制表达式。
shadowcomp能让阴影的可操作性更大(之前所有的阴影处理都丢在了shadow一个着色器里面),我个人估计是在执行完shadow之后执行,不过prepare的执行时机暂不清楚,我个人根据Optifine文档中的顺序推测在shadowcomp和gbuffer之间。
以下为Optifine文档里的内容:
复制代码prepare和shadowcomp都支持最高16个着色器,prepare的具体用途不清楚,但是我个人认为拥有巨大的开发潜能
至于为shadowcolor添加的那些原来普通缓冲区已有的内容,因为目前为止shadowcolor是MCJE光影中最适合存储世界空间坐标的缓冲区,shadowcolor可以修改RGBA深度代表着光影可以存储更多的世界空间的内容了,这个对目前大热的路径追踪光影是大有裨益的
不知道这些更新内容Sonic Ether他们会不会重视,虽然说这些目前仅仅存在于Optifine预览版,但是sp614x在完成这个版本之后把这些特性向下兼容也是很有可能的
- OptiFine 1.16.5_HD_U_G7_pre5
- - fixed crash when reloading shaders
- - fixed modded blocks, items and entities mapping with shaders (#3816)
- - added shaders buffers with fixed size
- - reorganized shaders framebuffers
- - added shaders prepare programs
- - added shadow composite programs
- - added 8 and 16 bit integer texture types
- - fixed screenshot with antialiasing (#5228)
- - added shaders macro MC_GL_VENDOR_AMD
- - added OpenGL debug groups and ignored errors
- - added clear color and skip clear for shadow color buffers (#2780)
- - added configurable shadow buffer format (#5221)
- - fixed antialiasing with Forge
- - increased shaders color buffers to 16, added draw buffers mapping (#2103)
- - updated to 1.16.5
- - compatible with Forge 36.0.0
- (01.02.2021)
缓冲区数量从8个翻倍到了16个(不过需要电脑支持,Mac被锁死了8个)
添加了shadowcomp(Shadow Composite,阴影后处理)与prepare(预处理)两个处理步骤
(对光追光影可能相当有用)添加了shadowcolor的一些功能的开关(每帧刷新缓冲区,RGBA颜色深度等等)
首先是缓冲区翻倍,如果有人写过光影的话应该感受到了原来8个缓冲区带来的限制(8个确实太少了),以至于一些光影(例如PTGI)把一些缓冲区设置成了RGBA16位甚至是32位(默认8位)来把多个数据存储在一个缓冲区。多了8个缓冲区对一些光影来说可以减少打包解包数据带来的性能消耗,而对于更偏向于高配的光影来说可以存储更多数据(例如Continuum RT在之前甚至把一些着色器内的深度缓冲区/阴影缓冲区拿来存储自定义数据)。新的colortex从colortex8开始,到colortexF结束,末尾数字为删去0x的十六进制表达式。
shadowcomp能让阴影的可操作性更大(之前所有的阴影处理都丢在了shadow一个着色器里面),我个人估计是在执行完shadow之后执行,不过prepare的执行时机暂不清楚,我个人根据Optifine文档中的顺序推测在shadowcomp和gbuffer之间。
以下为Optifine文档里的内容:
- Shader Programs
- ===============
- Name Render When not defined use
- ========================================================================================
- <none> gui, menus <none>
- --- Shadow map ---
- shadow everything in shadow pass <none>
- shadow_solid <not used> shadow
- shadow_cutout <not used> shadow
- --- Shadow composite ---
- shadowcomp <shadowcomp> <none>
- shadowcomp1 <shadowcomp> <none>
- ...
- shadowcomp15 <shadowcomp> <none>
- --- Prepare ---
- prepare <prepare> <none>
- prepare1 <prepare> <none>
- ...
- prepare15 <prepare> <none>
- --- GBuffers ---
- gbuffers_basic leash, block selection box <none>
- gbuffers_textured particles gbuffers_basic
- gbuffers_textured_lit lit_particles, world border gbuffers_textured
- gbuffers_skybasic sky, horizon, stars, void gbuffers_basic
- gbuffers_skytextured sun, moon gbuffers_textured
- gbuffers_clouds clouds gbuffers_textured
- gbuffers_terrain solid, cutout, cutout_mip gbuffers_textured_lit
- gbuffers_terrain_solid <not used> gbuffers_terrain
- gbuffers_terrain_cutout_mip <not used> gbuffers_terrain
- gbuffers_terrain_cutout <not used> gbuffers_terrain
- gbuffers_damagedblock damaged_blocks gbuffers_terrain
- gbuffers_block block_entities gbuffers_terrain
- gbuffers_beaconbeam beacon beam gbuffers_textured
- gbuffers_item <not used> gbuffers_textured_lit
- gbuffers_entities entities gbuffers_textured_lit
- gbuffers_entities_glowing glowing entities, spectral effect gbuffers_entities
- gbuffers_armor_glint glint on armor and handheld items gbuffers_textured
- gbuffers_spidereyes eyes of spider, enderman and dragon gbuffers_textured
- gbuffers_hand hand and opaque handheld objects gbuffers_textured_lit
- gbuffers_weather rain, snow gbuffers_textured_lit
- --- Deferred ---
- deferred_pre <virtual> flip ping-pong buffers <none>
- deferred <deferred> <none>
- deferred1 <deferred> <none>
- ...
- deferred15 <deferred> <none>
- --- GBuffers translucent ---
- gbuffers_water translucent gbuffers_terrain
- gbuffers_hand_water translucent handheld objects gbuffers_hand
- --- Composite ---
- composite_pre <virtual> flip ping-pong buffers <none>
- composite <composite> <none>
- composite1 <composite> <none>
- ...
- composite15 <composite> <none>
- --- Final ---
- final <final> <none>
至于为shadowcolor添加的那些原来普通缓冲区已有的内容,因为目前为止shadowcolor是MCJE光影中最适合存储世界空间坐标的缓冲区,shadowcolor可以修改RGBA深度代表着光影可以存储更多的世界空间的内容了,这个对目前大热的路径追踪光影是大有裨益的
不知道这些更新内容Sonic Ether他们会不会重视,虽然说这些目前仅仅存在于Optifine预览版,但是sp614x在完成这个版本之后把这些特性向下兼容也是很有可能的
很好奇这个改变会不会让光影更加流畅。这个改变貌似是加快光影开发速度的。
天空的大楼 发表于 2021-2-2 22:20
很好奇这个改变会不会让光影更加流畅。这个改变貌似是加快光影开发速度的。 ...
理论上这个不会对性能带来比较大的提升,是拿来提升特效上限的