#include <osg/Geode>
#include <osg/Geometry>
#include <osg/Material>
#include <osg/Vec3>
#include <osg/MatrixTransform>
#include <osg/Texture2D>
#include <osg/TexEnv>
#include <osg/PolygonStipple>
#include <osg/TriangleFunctor>
#include <osg/io_utils>
#include <osg/BlendFunc>
#include <osgDB/ReadFile>
#include <osgDB/WriteFile>
#include <osgGA/TrackballManipulator>
#include <osgViewer/ViewerEventHandlers>
#include <osgViewer/Viewer>
#include <osg/Math>
#include <iostream>
static const char* vertSource = {
"uniform vec3 lightPosition;\n"
"varying vec3 normal, eyeVec, lightDir;\n"
"void main()\n"
"{\n"
" vec4 vertexInEye = gl_ModelViewMatrix * gl_Vertex;\n"
" eyeVec = -vertexInEye.xyz;\n"
" lightDir = vec3(lightPosition - vertexInEye.xyz);\n"
" normal = gl_NormalMatrix * gl_Normal;\n"
" gl_TexCoord[0] = gl_MultiTexCoord0;\n"
" gl_Position = ftransform();\n"
"}\n"
};
static const char* fragSource = {
"uniform int baseFlag;\n"//流动开关
"uniform sampler2D baseTex;\n"//纹理0
"uniform float osg_FrameTime;\n"//当前OSG程序的运行总时间
"uniform vec4 lightDiffuse;\n"
"uniform vec4 lightSpecular;\n"
"uniform float shininess;\n"
"varying vec3 normal, eyeVec, lightDir;\n"
"float PositiveClampedPow(float X, float Y)\n"
"{\n"
"return pow(max(X,0.0f),Y);\n"
"}\n"
"float2 PositiveClampedPow(vec2 X, vec2 Y)\n"
"{\n"
"return pow(max(X, vec2(0.0f,0.0f)),Y);\n"
"}\n"
"float3 PositiveClampedPow(vec3 X, vec3 Y)\n"
"{\n"
"return pow(max(X, vec3(0.0f,0.0f,0.0f)),Y);\n"
"}\n"
"float4 PositiveClampedPow(vec4 X, vec4 Y)\n"
"{\n"
"return pow(max(X, vec4(0.0f,0.0f,0.0f,0.0f)),Y);\n"
"}\n"
"void main (void)\n"
"{\n"
" float a = lightDiffuse.a;\n"
" vec4 finalColor = gl_FrontLightModelProduct.s
OutCircleMotion外扩圆动画
最新推荐文章于 2021-08-08 10:15:53 发布