zoukankan      html  css  js  c++  java
  • 渲染程序的笔试准备

    必考的就是渲染管线了

    几何阶段

    obj space->world space->eyespace->project to CVV to clip(frustum culling)->project to screen coordinate space

    ->primitive assmbly

    光栅阶段

    ->rasterization->pixel operation(alpha test, stencil test, depth test, blending..)

     还是用我自己的话总结一下吧 之前是几个变换用矩阵乘就可以

    viewspace之后是cvv裁剪 再投到屏幕 到目前为止都是对顶点进行操作,顶点可以光栅化吗 明显不是。

    光栅化是针对面的。也就是说中间需要图元组装这一步,就是把刚刚处理完的顶点在连成面(比如三角形),所以背部剔除之类的也是在这里进行

    然后把面转成像素点,也就是光栅化,然后对这些像素进行各种处理吧纹理操作,各种混合

    ===========

    stencil buffer for mark

    framebuffer=colorbuffer+ z buffer(depth)

    OpenGL---GLSL

    Direct3D---HLSL

    NVIDIA----Cg

    ----------------------------------------------------------------

    Dx

    Local Space->World Space->View Space->Backface Culling->Lighting->Clipping->Projection->

    Viewport Space->Rasterization

    这个渲染管线还是要重新把realtime rendering里面背一遍''''''照dx这么答 被挑毛病了'''merge那些

    前面两个版本都不好讲得乱七八糟甚至矛盾realtime rendering上面这个为准吧

    Application stage

    Geometry stage

    Model&View transform->Vertex shading->Projection->Clipping->Screen Mapping

                           CVV    

    Rasterizer stage

    =========================================

    第二题

    skinned mesh 

    meshvex=weight1*bone1*vmesh+weight2*bone2*vmesh+......

    http://blog.csdn.net/n5/article/details/3105872。        

    这个没问

    -==============

    第三题 光照模型

     Lambert的漫反射模型

    I=I+I=KI+KI(N dot L)

    第一个I是各向等量的环境光产生的,第二个I是有方向光源产生的。 k为反射系数(0,1),I为光源光强随距离增加而衰减,N法线向量L顶点到光源单位向量

    phong的镜面反射模型(高光)

    I=KI(V dot R)n

    n为高光指数,V顶点到视点单位向量,R反射光方向

    既有漫反射又又镜面反射的 就是把前两个加起来

     Blinn-phong

    I=KI(N dot H)n

    H=normlize(L+V) L=light to pos, V=pos to view

    第四题 alpha混合

     问这个肯定是在放水了

     result = ALPHA * srcPixel + ( 1 - ALPHA ) * destPixel

    可惜这次面试拒绝放水

    水的波动效果的实现

    最崩溃的是 deferred shading''''

    基本上 所有面试官都会拿他们自己遇到的问题 作为开放式问题来提问

    3d场景 2d人物

    随机弹坑造成的mesh凹陷 这个有个小trick 关闭zbuffer

    多动态光源的光照 就是deferred shading

    ---------

    这就让我想起来另外两个觉得很有意思的trick

    shadowmap  selfshadow aliasing 这个渲染产生自阴影的mesh的时候 backculling那里 剔除front 渲染back

    还有就是辐射度算法 从每一个patch看这个世界 看到对他影响的所有像素 还有5个相机合成半立方体

    http://freespace.virgin.net/hugo.elias/radiosity/radiosity.htm 

    http://dev.gameres.com/Program/Visual/3D/Radiosity_Translation.htm

    虽然很老 但是这个视野感觉特别 有创意

    deffered shading都没这么让我感觉

    不过辐射度效率特别低 

  • 相关阅读:
    优化问题中什么形式有闭式解
    选择排序
    超算私房菜之集群搭建
    Scramble String
    Insert Interval
    Implement strStr()
    Permutation Sequence
    Insertion Sort List
    Restore IP Addresses
    Recover Binary Search Tree
  • 原文地址:https://www.cnblogs.com/minggoddess/p/3557585.html
Copyright © 2011-2022 走看看