Home Forums Games202-高质量实时渲染 关于【作业1】的Bonus部分的疑问

Tagged: 

Viewing 1 reply thread
  • Author
    Posts
    • #8047 Score: 0
      劉文刀
      Participant

      不懂JS的语法,框架没太看懂,按照自己的理解修改了几次,但还是没得到预期结果。特别是关于PhongMaterial与ShadowMaterial类里到底有哪些成员?如何修改这些成员的值?希望大佬能给点建议或思路

    • #8059 Score: 2
      cmc233
      Participant
      6 pts

      增加光源:
      一个很简单的做法是直接在webglRender.js里,对于同一个mesh,用gl.blendFunc把不同光源下画出来的结果给blend就行了(需要先在loadOBJ.js里把每个mesh不同的light下的meshRender和shadowMeshRender存下来),shader部分完全不用动;
      比较麻烦的做法:改phongShader

      物体运动:
      在engine.js的mainLoop()里更新mesh的translation,再直接用buildShadowMaterial()和buildPhongMaterial()计算新的material,赋值给renderer.shadowMeshes[i].material和renderer.meshes[i].material(具体写法可以参考loadOBJ.js);其中buildPhongMaterial需要用的colorMaps,mat.specular可以在loadOBJ.js里加行代码存下来

      This post has received 2 votes up.
      • #8060 Score: 0
        cmc233
        Participant
        6 pts

        更改一下,增加光源里,shader部分可能要有点小改动,例如新增一个#define NUM_LIGHTS 2.0,然后gl_FragColor = vec4(phongColor * visibility / NUM_LIGHTS, 1.0/ NUM_LIGHTS);这样blend的时候比较方便

Viewing 1 reply thread
  • You must be logged in to reply to this topic.