gpt4 book ai didi

graphics - Phong 阴影和 Gouraud 阴影有什么区别?

转载 作者:行者123 更新时间:2023-12-04 08:53:44 26 4
gpt4 key购买 nike

据我了解,Gouraud shading 计算每个顶点的光色并对该颜色进行插值,而 Phong shading 为每个像素插值法线并根据该插值计算光色。
然而,当我试图从数学上推导出浅色时,我最终得到了两种方式相同的公式!
figure i draw for that
(其中n1和n2是两个顶点的法线,t是插值系数,L是光线方向,上面的平面和虚线表示屏幕和一个像素。)
两种方法的光色推导如下:

  • 古罗:L = t*dot(n1,L) + (1-t)*dot(n2,L)
  • 风:L = dot(t*n1+(1-t)*n2,L)

  • 结果是一样的。
    谁能告诉我我的推导有什么问题?

    最佳答案

    Gouraud shading 处,光按顶点计算(顶点着色器),而在 Phong shading 处,光按片段(片段着色器)计算。
    因此,Gouraud 着色计算图元顶点(角)的光,并为图元覆盖的片段插入光。
    使用 Phong 着色,为每个片段单独计算光。
    通常,灯光由 Bidirectional reflectance distribution function 计算。该函数计算光在表面上的反射率,并取决于入射光的矢量、视点和表面的法线矢量。
    Gouraud shading 处插入顶点颜色(反射率),在 Phong shading 处插入 3 个向量。如果函数 c = brdf(l, v, n) 是线性的,其中 c 是颜色,l 是光方向,v 是 View 向量,n 是法线向量(例如 Lambertian reflectance ),那不会有任何区别.但是如果光模型不是线性的(例如 Blinn–Phong ),那么 Gouraud shading 的线性插值会导致不同的结果。
    比较 Gouraud shadingPhong shading


    也可以看看:
    GLSL fixed function fragment program replacement
    Phong and Gouraud Shading
    Gouraud shading / Phong shading

    关于graphics - Phong 阴影和 Gouraud 阴影有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63958531/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com