zoukankan      html  css  js  c++  java
  • OpenGL ES 光照模型之——环境光照(RenderMonkey测试)

     概述及目录(版权所有,请勿转载 www.cnblogs.com/feng-sc/)

      本文总结如何在RenderMonkey下做简单的OpenGL ES环境光光照模型测试。

      主要包括如下内容:

      1、使用RenderMonkey创建一个简单的工程

      2、环境关照模型分析及相应输入数据创建

      3、Shader代码编写

      4、效果展示

    使用RenderMonkey创建一个简单的工程

      RenderMoney创建一个OpenGL ES渲染工程很简单,大家只需根据下面图片步骤即可创建一个纯色的球体模型渲染工程。

     (OpenGL ES模型渲染工程创建)

     

    环境关照模型分析及相应输入数据创建

      环境光被建模为没有起点,也没有方向的类型光,其最大特点为它对场景中所有物体有同等的效果。模型公式如下:

      我们在下面的照片步骤中,我们在RenderMonkey中创建了该光照模型输入数据,以及为球体创建了一张贴图,其中gAnbientColor为环境光照颜色输入,gAmbientStrength为环境光照强度输入,baseMap为文理数据对象,我们为球体添加一张地球表面的图片。

     

     

     (环境光照模型数据输入及球体贴图文理创建)

     

    Shader代码编写 

       一、Vertex Shader


      我们为环境光照模型示例编写的顶点shader代码如下。

      其中:

        matViewProjection:为RenderMonkey预设的投影矩阵;

        rm_Vertex:为模型定顶点数据输入;

        rm_TexCoord0:为模型文理坐标输入;

        rm_TexCoord:为我们向Fragment Shader中输出的文理坐标数据;

    //环境光照模型vertex shader示例代码 1.0 http://www.cnblogs.com/feng-sc/
    uniform mat4 matViewProjection;
    attribute vec4 rm_Vertex;
    attribute vec2 rm_TexCoord0;
    varying vec2 rm_Texcoord;
    
    void main( void )
    {
        gl_Position = matViewProjection * rm_Vertex;
        rm_Texcoord    = rm_TexCoord0.xy;
    }

      二、Fragment Shader


      我们为环境光照模型示例编写的fragment shader代码如下。

      其中:

        baseMap:为模型文理贴图数据输入;
        gAnbientColor:环境关照颜色输入;
        gAmbientStrength:环境光照强度输入;
        rm_Texcoord:从vertex shader中输出的经过插值处理的文理坐标数据;
    //环境光照模型fragment shader示例代码 1.0 http://www.cnblogs.com/feng-sc/
    #ifdef GL_FRAGMENT_PRECISION_HIGH
    // Default precision precision highp float; #else precision mediump float; #endif uniform sampler2D baseMap; uniform vec4 gAnbientColor; uniform float gAmbientStrength; varying vec2 rm_Texcoord; void main( void ) { vec4 color = texture2D(baseMap,rm_Texcoord); gl_FragColor = color * gAnbientColor * gAmbientStrength; }

      最终,经过代码编译后,我们再RenderMonkey的渲染场景中绘制出了一个地球模型对象,如下图所示:

    ( Shader代码编写)

     效果展示

      下图中,我们展示了通过调整光照输入强度以及光照颜色,测试环境关照模型的实际显示效果:

     (效果展示)

     

  • 相关阅读:
    deeplearning.ai 卷积神经网络 Week 1 卷积神经网络
    deeplearning.ai 构建机器学习项目 Week 2 机器学习策略 II
    deeplearning.ai 构建机器学习项目 Week 1 机器学习策略 I
    deeplearning.ai 改善深层神经网络 week3 超参数调试、Batch Normalization和程序框架
    deeplearning.ai 改善深层神经网络 week2 优化算法
    deeplearning.ai 改善深层神经网络 week1 深度学习的实用层面
    cs231n spring 2017 lecture8 Deep Learning Networks
    cs231n spring 2017 lecture7 Training Neural Networks II
    cs231n spring 2017 lecture6 Training Neural Networks I
    cs231n spring 2017 Python/Numpy基础
  • 原文地址:https://www.cnblogs.com/feng-sc/p/5693495.html
Copyright © 2011-2022 走看看