1 Assimp 模型加载库作用?
答:在日常生活中有很多复杂的模型比如火车房屋,如果一一定义它们得顶点将很困难。Assimp能对每一种模型格式进行导入。
2 openGl如何应用Assimp模型加载库?
答:step 1:include Assimp头文件,通过loadModel()加载模型库,将得到一个scene; step 2:定义在上openGl Mesh,来接收scene里面的数据。step 3:根据mesh里面的数据来渲染。
3 深度测试原理及使用?
答:将一个片段的深度值和深度缓冲得内容进行对比,如果通过了得话将会更新为新的深度值,否则被丢弃。通过glEnable(GL_DEPTH_TEST)打开深度测试,通过glDepthFunc()控制条件丢弃。
4 什么深度冲突如何避免?
答:两个平面紧密排在一起,深度缓冲没有足够的精度来决定哪个在前面或者后面。避免:1)物体不要摆的太近,2)将近平面设置远一点,3)使用更高精度的深度缓冲。
5 什么是模板测试及使用?
答:在模板缓冲中存放8位精度的模板像素值,当片段等于模板值可以选择保留或者丢弃片段。通过glEnable(GL_STENCIL_TEST)开启模板测试。
6 如何渲染半透明纹理?
答:step 1: 启用混合,设定相应的混合函数,glEnable(GL_BLEND); 然后它就会自动将当前片段颜色和颜色缓冲中的颜色根据alpha值来进行混合。
7 什么是面剔除以及如何使用?
答:一个立方体我们最多看到三个面,剔除那些不显示的面可以节省百分之五十以上消耗。step 1先定义顶点根据环绕顺序定义背面; step 2 glEnable(GL_CULL_FACE)开启面剔除。
8 自定义帧缓冲好处以及如何自定义?