GeForceLegend
以下为Optifine最新预览版的更新日志:
  1. OptiFine 1.16.5_HD_U_G7_pre5
  2. - fixed crash when reloading shaders
  3. - fixed modded blocks, items and entities mapping with shaders (#3816)
  4. - added shaders buffers with fixed size
  5. - reorganized shaders framebuffers
  6. - added shaders prepare programs
  7. - added shadow composite programs
  8. - added 8 and 16 bit integer texture types
  9. - fixed screenshot with antialiasing (#5228)
  10. - added shaders macro MC_GL_VENDOR_AMD
  11. - added OpenGL debug groups and ignored errors
  12. - added clear color and skip clear for shadow color buffers (#2780)
  13. - added configurable shadow buffer format (#5221)
  14. - fixed antialiasing with Forge
  15. - increased shaders color buffers to 16, added draw buffers mapping (#2103)
  16. - updated to 1.16.5
  17. - compatible with Forge 36.0.0
  18. (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文档里的内容:
  1. Shader Programs
  2. ===============
  3. Name                         Render                                When not defined use
  4. ========================================================================================
  5. <none>                       gui, menus                            <none>
  6. --- Shadow map ---
  7. shadow                       everything in shadow pass             <none>  
  8. shadow_solid                 <not used>                            shadow
  9. shadow_cutout                <not used>                            shadow
  10. --- Shadow composite ---
  11. shadowcomp                   <shadowcomp>                          <none>
  12. shadowcomp1                  <shadowcomp>                          <none>
  13. ...
  14. shadowcomp15                 <shadowcomp>                          <none>
  15. --- Prepare ---
  16. prepare                      <prepare>                             <none>
  17. prepare1                     <prepare>                             <none>
  18. ...
  19. prepare15                    <prepare>                             <none>
  20. --- GBuffers ---
  21. gbuffers_basic               leash, block selection box            <none>
  22. gbuffers_textured            particles                             gbuffers_basic
  23. gbuffers_textured_lit        lit_particles, world border           gbuffers_textured
  24. gbuffers_skybasic            sky, horizon, stars, void             gbuffers_basic
  25. gbuffers_skytextured         sun, moon                             gbuffers_textured
  26. gbuffers_clouds              clouds                                gbuffers_textured
  27. gbuffers_terrain             solid, cutout, cutout_mip             gbuffers_textured_lit
  28. gbuffers_terrain_solid       <not used>                            gbuffers_terrain
  29. gbuffers_terrain_cutout_mip  <not used>                            gbuffers_terrain
  30. gbuffers_terrain_cutout      <not used>                            gbuffers_terrain
  31. gbuffers_damagedblock        damaged_blocks                        gbuffers_terrain
  32. gbuffers_block               block_entities                        gbuffers_terrain
  33. gbuffers_beaconbeam          beacon beam                           gbuffers_textured
  34. gbuffers_item                <not used>                            gbuffers_textured_lit
  35. gbuffers_entities            entities                              gbuffers_textured_lit
  36. gbuffers_entities_glowing    glowing entities, spectral effect     gbuffers_entities
  37. gbuffers_armor_glint         glint on armor and handheld items     gbuffers_textured
  38. gbuffers_spidereyes          eyes of spider, enderman and dragon   gbuffers_textured
  39. gbuffers_hand                hand and opaque handheld objects      gbuffers_textured_lit
  40. gbuffers_weather             rain, snow                            gbuffers_textured_lit
  41. --- Deferred ---
  42. deferred_pre                 <virtual> flip ping-pong buffers      <none>
  43. deferred                     <deferred>                            <none>
  44. deferred1                    <deferred>                            <none>
  45. ...
  46. deferred15                   <deferred>                            <none>
  47. --- GBuffers translucent ---
  48. gbuffers_water               translucent                           gbuffers_terrain
  49. gbuffers_hand_water          translucent handheld objects          gbuffers_hand
  50. --- Composite ---
  51. composite_pre                <virtual> flip ping-pong buffers      <none>
  52. composite                    <composite>                           <none>
  53. composite1                   <composite>                           <none>
  54. ...
  55. composite15                  <composite>                           <none>
  56. --- Final ---
  57. final                        <final>                               <none>
复制代码
prepare和shadowcomp都支持最高16个着色器,prepare的具体用途不清楚,但是我个人认为拥有巨大的开发潜能

至于为shadowcolor添加的那些原来普通缓冲区已有的内容,因为目前为止shadowcolor是MCJE光影中最适合存储世界空间坐标的缓冲区,shadowcolor可以修改RGBA深度代表着光影可以存储更多的世界空间的内容了,这个对目前大热的路径追踪光影是大有裨益的

不知道这些更新内容Sonic Ether他们会不会重视,虽然说这些目前仅仅存在于Optifine预览版,但是sp614x在完成这个版本之后把这些特性向下兼容也是很有可能的


花茶果之城
很好奇这个改变会不会让光影更加流畅。这个改变貌似是加快光影开发速度的。

GeForceLegend
天空的大楼 发表于 2021-2-2 22:20
很好奇这个改变会不会让光影更加流畅。这个改变貌似是加快光影开发速度的。 ...

理论上这个不会对性能带来比较大的提升,是拿来提升特效上限的

第一页 上一页 下一页 最后一页