zoukankan      html  css  js  c++  java
  • softcore CPU rasterization

    回到20世纪90年代,PC上进入3D图形硬件光栅化时代。VOODOO取代了CPU 光栅化渲染。随后出现NVIDIA TNT。直到GEFORCE将3DFX吞并。现在GPU的演变已经8年,基于屏幕上每个象素的复杂计算已经可以让老shader程序员忽略C和HLSL的区别。

    在下一代mmo 3d引擎工具平台开发之前,有必要重新回到GPU内部,关注几何与光栅管道。越来越复杂的shader效果一切均基于光栅器的运作机理。把工作从GPU搬回CPU目的为使图形开发人员打捞图形学基础,在次世代开发中更好的运用GPU功能。

    softcore 是一个软件光栅器。用于从场景物体的geometry transform, clipping,lighting, texture mapping, gouraud shading,到最后光栅化显示的整个图形处理管道技术演示。此项目为了保持代码清晰,省略了所有优化。只在可以使用SIMD和MULTITHREAD的步骤做出了标记。为了便于学习,project整合了id software doom3 sdk中SIMD和数学库代码。

    由于是两个星期业余时间制作,时间有限,主要目的在于演示3D加速核心算法,光栅化部分的tc,color数值计算和sampler部分仍然需要进一步tunning。需要去除溢出和浮点转整数规则调整。这些可由感兴趣人员自行修改。

    softcore project

    done:

    * CPU soft rasterization

    * Z-buffer

    * Gouraud Shading

    * Perspective Correct Texturemapping

    * Near plane Clipping

    * Back face culling(geometry)

    * Directional lighting

    not do:

    x Phong shading/bump mapping

    x Bilinear filter

    x Mipmap

    x Dynamic lightmap

    x Vertex color export/import

    x Optimization

    以下是3DSMAX中场景原图。有了硬件BILINEAR效果还是不一样.....

    后面给出技术细节

  • 相关阅读:
    Winform 让跨线程访问变得更简单
    Winform 单实例运行
    webservice 测试窗体只能用于来自本地计算机的请求
    使用srvany.exe把程序安装成windows服务
    学习ExtJS4 常用控件
    [leetcode]Unique Binary Search Trees
    [leetcode]Subsets II
    [leetcode]Subsets
    [leetcode]Valid Number
    [leetcode]Permutation Sequence
  • 原文地址:https://www.cnblogs.com/puzzy3d/p/1248297.html
Copyright © 2011-2022 走看看