当前位置: 首页 > 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.zqtcl.cn/news/26481/

相关文章:

  • 龙岗做网站建设自动发布 wordpress
  • Wordpress不显示功能百度seo教程网
  • 个人做网站流程图网页制作做网站左侧导航
  • 南京规划建设展览馆网站怎样申请网站注册
  • 做一个网站一般费用电商网站建设维护
  • 广州市网站建设科技公司沧州seo推广
  • 沾益住房和城乡建设局网站韩国家具网站模板
  • 销售网站制作个人网站网页设计模板
  • 化妆品网站优势展厅装修设计公司有
  • 公司英文网站建设phpnow 安装wordpress
  • 网站备案和域名备案的区别制作一般网站
  • 营销型网站设计房地产网站建设方案如何讲解
  • 网站里怎样做物流跟踪功能网站定制开发优点
  • 设计网站做什么内容好廊坊建设质量监督局网站
  • 建设一个公司网站wordpress如何关闭标签功能
  • 购物网站建设规划书长沙哪里可以做网站
  • 做租车行网站赣州梦幻网络科技有限公司
  • 怎样在设计网站做图赚钱提供网络推广服务
  • 乌市高新区建设局网站seo刷排名公司
  • 制作网站服务公司网站联盟三要素
  • 网站专题页制作景点网站设计与制作
  • 电子商务网站建设软件选择如何在百度建立自己的网站
  • 学习网站建设的网站平面设计与网页设计培训
  • wordpress手机菜单导航网站做seo
  • 顺德龙江网站建设网站开发找谁
  • 网站建设费的会计分录dede网站建设步骤
  • 做免费网站怎么做百度多久收录一次网站
  • 北京西路做网站的公司沐众科技网站建设
  • 网站建设和维护教程网络推广目标
  • 网站静态页模板装修设计公司简介