当前位置: 首页 > news >正文

做简历网站wordpress 增加 推荐

做简历网站,wordpress 增加 推荐,制作相册影集软件,辽宁网站建设培训班前面打印了各个级别的hdr环境贴图#xff0c;也能看到预过滤环境贴图#xff0c;现在进行打印各个级别的预过滤环境贴图。 运行结果如下 代码如下#xff1a; #include osg/TextureCubeMap #include osg/TexGen #include osg/TexEnvCombine #…前面打印了各个级别的hdr环境贴图也能看到预过滤环境贴图现在进行打印各个级别的预过滤环境贴图。 运行结果如下 代码如下 #include osg/TextureCubeMap #include osg/TexGen #include osg/TexEnvCombine #include osgUtil/ReflectionMapGenerator #include osgDB/ReadFile #include osgViewer/Viewer #include osg/NodeVisitor #include osg/ShapeDrawable #include osgGA/TrackballManipulator #include osgDB/WriteFile static const char * vertexShader { //“#version 120 core\n” “in vec3 aPos;\n” “varying vec3 localPos;\n” “void main(void)\n” “{\n” “localPos aPos;\n” gl_Position ftransform();\n //“gl_Position view * view * vec4(aPos,1.0);” “}\n” }; static const char psShader { “varying vec3 localPos;\n” “uniform samplerCube environmentMap;” “uniform float roughness;” “const float PI 3.1415926;” “float VanDerCorpus(uint n, uint base) “{ float invBase 1.0 / float(base); float denom 1.0; float result 0.0; for (uint i 0u; i 32u; i) { if (n 0u) { denom mod(float(n), 2.0); result denom * invBase; invBase invBase / 2.0; n uint(float(n) / 2.0); } } “return result; “} “vec2 HammersleyNoBitOps(uint i, uint N) “{ return vec2(float(i) / float(N), VanDerCorpus(i, 2u)); “} //“float RadicalInverse_Vdc(uint bits)\n” //”{” //“bits (bits 16u) | (bits 16u);” //“bits ((bits 0x55555555u) 1u ) | (bits 0xAAAAAAAAu) 1u);” //“bits ((bits 0x33333333u) 2u ) | (bits 0xCCCCCCCCu) 2u);” //“bits ((bits 0x0F0F0F0Fu) 4u ) | (bits 0xF0F0F0F0u) 4u);” //“bits ((bits 0x00FF00FFu) 8u ) | (bits 0xFF00FF00u) 8u);” //“return float(bits) * 2.3283064365386963e-10;” //”}” //“vec2 Hammersley(uint i, uint N)” //”{” //“return vec2(float(i) / float(N), RadicalInverse_Vdc(i));” //”} “vec3 ImportanceSampleGGX(vec2 Xi, vec3 N, float roughness)” “{” “float a roughness * roughness;” “float phi 2.0 * PI * Xi.x;” float cosTheta sqrt((1.0 - Xi.y)/(1.0(aa-1.0) * Xi.y)); “float sinTheta sqrt(1.0 - cosTheta * cosTheta);” “vec3 H;” “H.x cos(phi) * sinTheta;” “H.y sin(phi) * sinTheta;” “H.z cosTheta;” “vec3 up abs(N.z) 0.999 ? vec3(0.0,0.0,1.0) : vec3(1.0,0.0,0.0);” “vec3 tangent normalize(cross(up,N));” “vec3 bitangent cross(N,tangent);” “vec3 sampleVec tangent * H.x bitangent * H.y N * H.z;” “return normalize(sampleVec);” “}” void main() { vec3 N normalize(localPos); vec3 R N; vec3 V R; const uint SAMPLE_COUNT 1024u; float totalWeight 0.0; vec3 prefilteredColor vec3(0.0); for (uint i 0u; i SAMPLE_COUNT; i) { vec2 Xi HammersleyNoBitOps(i, SAMPLE_COUNT); vec3 H ImportanceSampleGGX(Xi, N, roughness); vec3 L normalize(2.0 * dot(V, H) * H - V); float NdotL max(dot(N, L), 0.0); if (NdotL 0.0) { prefilteredColor texture(environmentMap, L).rgb * NdotL; totalWeight NdotL; } } prefilteredColor prefilteredColor / totalWeight; gl_FragColor vec4(prefilteredColor, 1.0); } }; class MyNodeVisitor : public osg::NodeVisitor { public: MyNodeVisitor() : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) { } void apply(osg::Geode geode) {int count geode.getNumDrawables();for (int i 0; i count; i){osg::ref_ptrosg::Geometry geometry geode.getDrawable(i)-asGeometry();if (!geometry.valid()){continue;}osg::Array* vertexArray geometry-getVertexArray();geometry-setVertexAttribArray(1, vertexArray);}traverse(geode); }}; osg::ref_ptrosg::TextureCubeMap getTextureCubeMap(osgViewer::Viewer viewer, int textureWidth, int textureHeight) { unsigned int screenWidth, screenHeight; osg::GraphicsContext::WindowingSystemInterface * wsInterface osg::GraphicsContext::getWindowingSystemInterface(); wsInterface-getScreenResolution(osg::GraphicsContext::ScreenIdentifier(0), screenWidth, screenHeight); osg::ref_ptrosg::GraphicsContext::Traits traits new osg::GraphicsContext::Traits; traits-x 0; traits-y 0; traits-width screenWidth; traits-height screenHeight; traits-windowDecoration false; traits-doubleBuffer true; traits-sharedContext 0; traits-readDISPLAY(); traits-setUndefinedScreenDetailsToDefaultScreen();osg::ref_ptrosg::GraphicsContext gc osg::GraphicsContext::createGraphicsContext(traits.get()); if (!gc) {osg::notify(osg::NOTICE) GraphicsWindow has not been created successfully. std::endl;return NULL; }osg::ref_ptrosg::TextureCubeMap texture new osg::TextureCubeMap;texture-setTextureSize(textureWidth, textureHeight); texture-setInternalFormat(GL_RGB); texture-setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR); texture-setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); texture-setWrap(osg::Texture::WRAP_S, osg::Texture::CLAMP_TO_EDGE); texture-setWrap(osg::Texture::WRAP_T, osg::Texture::CLAMP_TO_EDGE); texture-setWrap(osg::Texture::WRAP_R, osg::Texture::CLAMP_TO_EDGE);osg::Camera::RenderTargetImplementation renderTargetImplementation osg::Camera::FRAME_BUFFER_OBJECT; // front face {osg::ref_ptrosg::Camera camera new osg::Camera;camera-setName(Front face camera);camera-setGraphicsContext(gc.get());camera-setViewport(new osg::Viewport(0, 0, textureWidth, textureHeight));camera-setAllowEventFocus(false);camera-setRenderTargetImplementation(renderTargetImplementation);camera-setRenderOrder(osg::Camera::PRE_RENDER);//关联采样贴图camera-attach(osg::Camera::COLOR_BUFFER, texture, 0, osg::TextureCubeMap::POSITIVE_Y);osg::ref_ptrosg::Image printImage new osg::Image;printImage-setFileName(camera-getName());printImage-allocateImage(textureWidth, textureHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE);texture-setImage(0, printImage);camera-attach(osg::Camera::COLOR_BUFFER, printImage);viewer.addSlave(camera.get(), osg::Matrixd(), osg::Matrixd()); }// top face {osg::ref_ptrosg::Camera camera new osg::Camera;camera-setName(Top face camera);camera-setGraphicsContext(gc.get());camera-setViewport(new osg::Viewport(0, 0, textureWidth, textureHeight));camera-setAllowEventFocus(false);camera-setRenderTargetImplementation(renderTargetImplementation);camera-setRenderOrder(osg::Camera::PRE_RENDER);//关联采样贴图camera-attach(osg::Camera::COLOR_BUFFER, texture, 0, osg::TextureCubeMap::POSITIVE_Z);osg::ref_ptrosg::Image printImage new osg::Image;printImage-setFileName(camera-getName());printImage-allocateImage(textureWidth, textureHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE);texture-setImage(1, printImage);camera-attach(osg::Camera::COLOR_BUFFER, printImage);viewer.addSlave(camera.get(), osg::Matrixd(), osg::Matrixd::rotate(osg::inDegrees(-90.0f), 1.0, 0.0, 0.0)); }// left face {osg::ref_ptrosg::Camera camera new osg::Camera;camera-setName(Left face camera);camera-setGraphicsContext(gc.get());camera-setViewport(new osg::Viewport(0, 0, textureWidth, textureHeight));camera-setAllowEventFocus(false);camera-setRenderTargetImplementation(renderTargetImplementation);camera-setRenderOrder(osg::Camera::PRE_RENDER);//关联采样贴图camera-attach(osg::Camera::COLOR_BUFFER, texture, 0, osg::TextureCubeMap::NEGATIVE_X);osg::ref_ptrosg::Image printImage new osg::Image;printImage-setFileName(camera-getName());printImage-allocateImage(textureWidth, textureHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE);texture-setImage(2, printImage);camera-attach(osg::Camera::COLOR_BUFFER, printImage);viewer.addSlave(camera.get(), osg::Matrixd(), osg::Matrixd::rotate(osg::inDegrees(-90.0f), 0.0, 1.0, 0.0) * osg::Matrixd::rotate(osg::inDegrees(-90.0f), 0.0, 0.0, 1.0)); }// right face {osg::ref_ptrosg::Camera camera new osg::Camera;camera-setName(Right face camera);camera-setGraphicsContext(gc.get());camera-setViewport(new osg::Viewport(0, 0, textureWidth, textureHeight));camera-setAllowEventFocus(false);camera-setRenderTargetImplementation(renderTargetImplementation);camera-setRenderOrder(osg::Camera::PRE_RENDER);//关联采样贴图camera-attach(osg::Camera::COLOR_BUFFER, texture, 0, osg::TextureCubeMap::POSITIVE_X);osg::ref_ptrosg::Image printImage new osg::Image;printImage-setFileName(camera-getName());printImage-allocateImage(textureWidth, textureHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE);texture-setImage(3, printImage);camera-attach(osg::Camera::COLOR_BUFFER, printImage);viewer.addSlave(camera.get(), osg::Matrixd(), osg::Matrixd::rotate(osg::inDegrees(90.0f), 0.0, 1.0, 0.0) * osg::Matrixd::rotate(osg::inDegrees(90.0f), 0.0, 0.0, 1.0));}// bottom face {osg::ref_ptrosg::Camera camera new osg::Camera;camera-setGraphicsContext(gc.get());camera-setName(Bottom face camera);camera-setViewport(new osg::Viewport(0, 0, textureWidth, textureHeight));camera-setAllowEventFocus(false);camera-setRenderTargetImplementation(renderTargetImplementation);camera-setRenderOrder(osg::Camera::PRE_RENDER);//关联采样贴图camera-attach(osg::Camera::COLOR_BUFFER, texture, 0, osg::TextureCubeMap::NEGATIVE_Z);osg::ref_ptrosg::Image printImage new osg::Image;printImage-setFileName(camera-getName());printImage-allocateImage(textureWidth, textureHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE);texture-setImage(4, printImage);camera-attach(osg::Camera::COLOR_BUFFER, printImage);viewer.addSlave(camera.get(), osg::Matrixd(), osg::Matrixd::rotate(osg::inDegrees(90.0f), 1.0, 0.0, 0.0) * osg::Matrixd::rotate(osg::inDegrees(180.0f), 0.0, 0.0, 1.0));}// back face {osg::ref_ptrosg::Camera camera new osg::Camera;camera-setName(Back face camera);camera-setGraphicsContext(gc.get());camera-setViewport(new osg::Viewport(0, 0, textureWidth, textureHeight));camera-setAllowEventFocus(false);camera-setRenderTargetImplementation(renderTargetImplementation);camera-setRenderOrder(osg::Camera::PRE_RENDER);//关联采样贴图camera-attach(osg::Camera::COLOR_BUFFER, texture, 0, osg::TextureCubeMap::NEGATIVE_Y);osg::ref_ptrosg::Image printImage new osg::Image;printImage-setFileName(camera-getName());printImage-allocateImage(textureWidth, textureHeight, 1, GL_RGBA, GL_UNSIGNED_BYTE);texture-setImage(5, printImage);camera-attach(osg::Camera::COLOR_BUFFER, printImage);viewer.addSlave(camera.get(), osg::Matrixd(), osg::Matrixd::rotate(osg::inDegrees(180.0f), 1.0, 0.0, 0.0));}viewer.getCamera()-setProjectionMatrixAsPerspective(90.0f, 1.0, 0.1, 10);//viewer.getCamera()-setNearFarRatio(0.0001f); return texture;} int main() { int level 0; //0,1,2,3,4 int maxLevel 4; float roughness level * 1.0 / maxLevel; int textureWidth 128; int textureHeight 128; float ratio std::pow(0.5, level); int mipWidth textureWidth * ratio; int mipHeight textureHeight * ratio; std::string strDir e:/hdr/lod/ std::to_string(level) /;osg::ref_ptrosg::TextureCubeMap tcm new osg::TextureCubeMap; tcm-setFilter(osg::Texture::MIN_FILTER, osg::Texture::LINEAR); tcm-setFilter(osg::Texture::MAG_FILTER, osg::Texture::LINEAR); tcm-setWrap(osg::Texture::WRAP_S, osg::Texture::CLAMP_TO_EDGE); tcm-setWrap(osg::Texture::WRAP_T, osg::Texture::CLAMP_TO_EDGE); tcm-setWrap(osg::Texture::WRAP_R, osg::Texture::CLAMP_TO_EDGE);std::string strImagePosX strDir Right face camera.bmp; osg::ref_ptrosg::Image imagePosX osgDB::readImageFile(strImagePosX); tcm-setImage(osg::TextureCubeMap::POSITIVE_X, imagePosX); std::string strImageNegX strDir Left face camera.bmp; osg::ref_ptrosg::Image imageNegX osgDB::readImageFile(strImageNegX); tcm-setImage(osg::TextureCubeMap::NEGATIVE_X, imageNegX);std::string strImagePosY strDir Front face camera.bmp;; osg::ref_ptrosg::Image imagePosY osgDB::readImageFile(strImagePosY); tcm-setImage(osg::TextureCubeMap::POSITIVE_Y, imagePosY); std::string strImageNegY strDir Back face camera.bmp;; osg::ref_ptrosg::Image imageNegY osgDB::readImageFile(strImageNegY); tcm-setImage(osg::TextureCubeMap::NEGATIVE_Y, imageNegY);std::string strImagePosZ strDir Top face camera.bmp; osg::ref_ptrosg::Image imagePosZ osgDB::readImageFile(strImagePosZ); tcm-setImage(osg::TextureCubeMap::POSITIVE_Z, imagePosZ); std::string strImageNegZ strDir Bottom face camera.bmp; osg::ref_ptrosg::Image imageNegZ osgDB::readImageFile(strImageNegZ); tcm-setImage(osg::TextureCubeMap::NEGATIVE_Z, imageNegZ);osg::ref_ptrosg::Box box new osg::Box(osg::Vec3(0, 0, 0), 1); osg::ref_ptrosg::ShapeDrawable drawable new osg::ShapeDrawable(box); osg::ref_ptrosg::Geode geode new osg::Geode; geode-addDrawable(drawable); MyNodeVisitor nv; geode-accept(nv); osg::ref_ptrosg::StateSet stateset geode-getOrCreateStateSet(); stateset-setTextureAttributeAndModes(0, tcm, osg::StateAttribute::OVERRIDE | osg::StateAttribute::ON);//shaderosg::ref_ptrosg::Shader vs1 new osg::Shader(osg::Shader::VERTEX, vertexShader); osg::ref_ptrosg::Shader ps1 new osg::Shader(osg::Shader::FRAGMENT, psShader); osg::ref_ptrosg::Program program1 new osg::Program; program1-addShader(vs1); program1-addShader(ps1); program1-addBindAttribLocation(aPos, 1);osg::ref_ptrosg::Uniform tex0Uniform new osg::Uniform(environmentMap, 0); stateset-addUniform(tex0Uniform); osg::ref_ptrosg::Uniform roughnessUniform new osg::Uniform(roughness, roughness); stateset-addUniform(roughnessUniform); stateset-setAttribute(program1, osg::StateAttribute::ON);osgViewer::Viewer viewer; osg::ref_ptrosgGA::TrackballManipulator manipulator new osgGA::TrackballManipulator(); viewer.setCameraManipulator(manipulator); osg::Vec3d newEye(0, 0, 0); osg::Vec3 newCenter(0, 0, 0); osg::Vec3 newUp(0, 1, 0); manipulator-setHomePosition(newEye, newCenter, newUp); osg::ref_ptrosg::TextureCubeMap textureCubeMap getTextureCubeMap(viewer, mipWidth, mipHeight); viewer.setSceneData(geode.get());bool bPrinted false; while (!viewer.done()) {viewer.frame();if (!bPrinted){bPrinted true;int imageNumber textureCubeMap-getNumImages();for (int i 0; i imageNumber; i){osg::ref_ptrosg::Image theImage textureCubeMap-getImage(i);std::string strPrintName e:/hdr/Prefilter/ std::to_string(level) / theImage-getFileName() .bmp;osgDB::writeImageFile(*theImage, strPrintName);}} } return 0;}
http://www.pierceye.com/news/26481/

相关文章:

  • 网站建设模块零基础怎么学视频剪辑
  • 有的网站网速慢济南房产网新开楼盘
  • 做网站专题页的字大小是多少网络文化经营许可证费用
  • 创建网站需要哪些过程国内设计网站推荐
  • 基于网站的app开发网站开发项目成本分析之合理性
  • 白酒营销网站阿里云备案 网站名称
  • 网站建设全程揭秘 课件下载建设报名系统是正规网站吗
  • 江西网站建设网络公司宝尊电商代运营入口
  • wordpress网站破解做课题查新网站
  • 网站建设需要学ps吗wordpress显示同一分类的文章
  • 网站文章没有被收录第三方微信网站建设
  • 视频网站调用暴雪回归
  • 网站建设柒首先金手指7推荐几个没封的网址
  • 制作网站页面怎么做网站设计评价指标
  • 企业产品网站模板焦作网站建设哪家正规
  • 重庆网站制作外包如何区别网站是自适应还是
  • 怎么用阿里云建网站网站建立的步骤是( )
  • 网站整站下载器 下载后台电商网站那些功能用到静态化功能
  • html5网站制作培训源代码网站和模板做的区别
  • 做网站大概要多少钱备案网站内容格式填写
  • 做网站简约学校网站钟表商城网站建设方案
  • html网站地图制作渭南网站建设公司定制网站建设公司
  • 合肥建站优化企业局域网视频网站建设
  • 一些大型网站的服务器需要租用多大的带宽可以做样机图的网站
  • dede网站 index.php无法访问中英文切换网站怎么做
  • 网站建设报价费用是多少计算机专业学什么
  • 互联网服务网站建设目的仪征做网站
  • 莱州网站设计淘宝返利网站怎么做
  • 榆次住房和城乡建设局网站广告公司名字大全集
  • 网站宣传推广策划方案网站建设绿茶