Home Forums GAMES104 现代游戏引擎:从入门到实践 关于作业二中Color grading实现后会出现圈状花纹的bug

Viewing 5 reply threads
  • Author
    Posts
    • #11457 Score: 0
      zhishao
      Participant
      2 pts

      我在实现了Color grading的效果之后发现画面中会有如附件中的圈状不规则花纹,有同学遇到过吗?或者知道造成的原因?

      Attachments:
      You must be logged in to view attached files.
    • #11459 Score: 0
      rmlx
      Participant

      如果用的老师给的lut应该不会,我倒是出现了不过因为单纯的计算错行了导致后面插值算的很奇怪,建议检查一下代码。我想到debug方法是outcolor赋值颜色检测每一步的值对不对

    • #11460 Score: 0
      huanggaole
      Participant
      -1 pt

      同学你好,请做下述检查:
      1. 检查一下使用的是哪一个lut图。第二次作业默认使用的 “asset/texture/lut/color_grading_lut_01.png”是一张256*16尺寸的lut图,每个小块的尺寸是16*16,按B值递增的顺序展开。
      2. 检查一下是否正确计算插值,当输入的颜色在lut图上四个像素之间的时候,是否插值出了正确的输出像素的颜色。

    • #11461 Score: 0
      kyrie_wx
      Participant
      1 pt

      可以看一下第七课 1:48:00左右,老师讲的那个注意点

    • #11478 Score: 0
      Artorias
      Participant

      我出现了类似的情况,我的原因是忘记和原图混合了。

      • #11479 Score: 0
        zhishao
        Participant
        2 pts

        这个还需要跟原图混合啊,我的理解是这里不是应该直接把屏幕中的颜色换成UV然后再LUT中采样做颜色替换的吗?这里为什么需要混合呢?

        • #11480 Score: 0
          Artorias
          Participant

          我又看了一下,确实不是和原图混合的原因, 混合原图是控制效果的强弱。
          应该是这个原因:
          highp vec3 color3 = mix(color1, color2, fract(color.b));
          直接用color.b会有这个问题,用color.b * 15.0 不会

          Attachments:
          You must be logged in to view attached files.
    • #11540 Score: 0
      zhishao
      Participant
      2 pts

      这个问题解决了,统一回复一下。我这边确实是忘记对b分量进行插值才导致的如图效果。我这边也尝试像@huanggaole 同学提到的在每个部分对r,g进行四个像素的插值,然后再通过b分量插值,但是效果不是特别明显.所以只保留了b分量的插值

      • This reply was modified 2 days, 12 hours ago by zhishao.
      • #11542 Score: 0
        Terry Shao
        Participant

        rg应该并不需要手动进行插值吧,由于使用的是linear sampler,会根据输入的uv自动做相邻像素的插值

        • #11543 Score: 0
          zhishao
          Participant
          2 pts

          我本身没有用过图形api相关的东西,我也是看上面的回复和作业要求上说需要模拟linear sample 以为需要自己再实现一次。

Viewing 5 reply threads
  • You must be logged in to reply to this topic.