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

网站建设策划书(建设前的市场分析)怎么做网站优

网站建设策划书(建设前的市场分析),怎么做网站优,wordpress 多商户,成都专业网站设计好公司1. 颜色 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色#xff0c;而是它所反射的(Reflected)颜色。换句话说#xff0c;那些不能被物体所吸收(Absorb)的颜色#xff08;被拒绝的颜色#xff09;就是我们能够感知到的物体的颜色。例如#xff0c;太阳光…1. 颜色 我们在现实生活中看到某一物体的颜色并不是这个物体真正拥有的颜色而是它所反射的(Reflected)颜色。换句话说那些不能被物体所吸收(Absorb)的颜色被拒绝的颜色就是我们能够感知到的物体的颜色。例如太阳光能被看见的白光其实是由许多不同的颜色组合而成的如下图所示。如果我们将白光照在一个蓝色的玩具上这个蓝色的玩具会吸收白光中除了蓝色以外的所有子颜色不被吸收的蓝色光被反射到我们的眼中让这个玩具看起来是蓝色的。下图显示的是一个珊瑚红的玩具它以不同强度反射了多个颜色。 我们将这两个颜色向量作分量相乘结果就是最终的颜色向量了 glm::vec3 lightColor(1.0f, 1.0f, 1.0f); glm::vec3 toyColor(1.0f, 0.5f, 0.31f); glm::vec3 result lightColor * toyColor; // (1.0f, 0.5f, 0.31f); 我们可以看到玩具的颜色吸收了白色光源中很大一部分的颜色但它根据自身的颜色值对红、绿、蓝三个分量都做出了一定的反射。这也表现了现实中颜色的工作原理。由此我们可以定义物体的颜色为物体从一个光源反射各个颜色分量的大小。现在如果我们使用绿色的光源又会发生什么呢 glm::vec3 lightColor(0.0f, 1.0f, 0.0f); glm::vec3 toyColor(1.0f, 0.5f, 0.31f); glm::vec3 result lightColor * toyColor; // (0.0f, 0.5f, 0.0f); 2. 创造一个光照场景 场景中有两个东西一个是物体一个是光源。 物体就是大正方体是红色的。 光源点就是小正方体是白色的。 因此我们需要两个顶点着色器和片段。 light_cube.vs 一个标准的三矩阵确定位置 #version 330 core layout (location 0) in vec3 aPos;uniform mat4 model; uniform mat4 view; uniform mat4 projection;void main() {gl_Position projection * view * model * vec4(aPos, 1.0); } ligtht_cube.fs 光源的片段着色器默认都是白色 #version 330 core out vec4 FragColor;void main() {FragColor vec4(1.0); // set all 4 vector values to 1.0 } cube.vs 被照射的物体也是标准的三矩阵确定位置 #version 330 core layout (location 0) in vec3 aPos;uniform mat4 model; uniform mat4 view; uniform mat4 projection;void main() {gl_Position projection * view * model * vec4(aPos, 1.0); } cube.fs 我们看到的物体颜色光的颜色*物体本身的颜色 #version 330 core out vec4 FragColor;uniform vec3 objectColor; uniform vec3 lightColor;void main() {FragColor vec4(lightColor * objectColor, 1.0); } main.cpp #include glad/glad.h #include GLFW/glfw3.h#include iostream #include stb_image.h #include cmath #include shader.h #include camera.h#include glm/glm.hpp #include glm/gtc/matrix_transform.hpp #include glm/gtc/type_ptr.hppvoid framebuffer_size_callback(GLFWwindow* window, int width, int height); void processInput(GLFWwindow* window); void mouse_callback(GLFWwindow* window, double xpos, double ypos); void scroll_callback(GLFWwindow* window, double xoffset, double yoffset);// settings const unsigned int SCR_WIDTH 1800; const unsigned int SCR_HEIGHT 1200;//camera Camera camera(glm::vec3(0.0f, 0.0f, 3.0f)); float lastX SCR_WIDTH / 2.0f; float lastY SCR_HEIGHT / 2.0f; bool firstMouse true;//timing float deltaTime 0.0f;//不同配置绘制速度不同所以需要这个属性 float lastFrame 0.0f;//lighting glm::vec3 lightPos(1.2f, 1.0f, 2.0f);int main() {//glfw:initialize and configure//glfwInit();glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);#ifdef __APPLE__glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); #endif//glfw window creation//GLFWwindow* window glfwCreateWindow(SCR_WIDTH, SCR_HEIGHT, Learn, NULL, NULL);if (window NULL) {std::cout Failed to create GLFW window std::endl;glfwTerminate();return -1;}glfwMakeContextCurrent(window);glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);glfwSetCursorPosCallback(window, mouse_callback);glfwSetScrollCallback(window, scroll_callback);//tell GLFW to capture our mouseglfwSetInputMode(window, GLFW_CURSOR, GLFW_CURSOR_DISABLED);//glad::load all OPenGL function pointers//if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) {std::cout Failed to initialize GLAD std::endl;return -1;}//configure gloabl opengl state//glEnable(GL_DEPTH_TEST);//build and compile our shader zprogram//Shader lightingShader(./cube.vs, ./cube.fs);Shader lightingCubeShader(./light_cube.vs, ./light_cube.fs);//set up vertex data float vertices[] {-0.5f, -0.5f, -0.5f,0.5f, -0.5f, -0.5f,0.5f, 0.5f, -0.5f,0.5f, 0.5f, -0.5f,-0.5f, 0.5f, -0.5f,-0.5f, -0.5f, -0.5f,-0.5f, -0.5f, 0.5f,0.5f, -0.5f, 0.5f,0.5f, 0.5f, 0.5f,0.5f, 0.5f, 0.5f,-0.5f, 0.5f, 0.5f,-0.5f, -0.5f, 0.5f,-0.5f, 0.5f, 0.5f,-0.5f, 0.5f, -0.5f,-0.5f, -0.5f, -0.5f,-0.5f, -0.5f, -0.5f,-0.5f, -0.5f, 0.5f,-0.5f, 0.5f, 0.5f,0.5f, 0.5f, 0.5f,0.5f, 0.5f, -0.5f,0.5f, -0.5f, -0.5f,0.5f, -0.5f, -0.5f,0.5f, -0.5f, 0.5f,0.5f, 0.5f, 0.5f,-0.5f, -0.5f, -0.5f,0.5f, -0.5f, -0.5f,0.5f, -0.5f, 0.5f,0.5f, -0.5f, 0.5f,-0.5f, -0.5f, 0.5f,-0.5f, -0.5f, -0.5f,-0.5f, 0.5f, -0.5f,0.5f, 0.5f, -0.5f,0.5f, 0.5f, 0.5f,0.5f, 0.5f, 0.5f,-0.5f, 0.5f, 0.5f,-0.5f, 0.5f, -0.5f,};//第一个unsigned int VBO, cubeVAO;glGenVertexArrays(1, cubeVAO);glGenBuffers(1, VBO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);glBindVertexArray(cubeVAO);//position attributeglVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);//第二个unsigned int lightCubeVAO;glGenVertexArrays(1, lightCubeVAO);glBindVertexArray(lightCubeVAO);glBindBuffer(GL_ARRAY_BUFFER, VBO);glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);glEnableVertexAttribArray(0);//reader loopwhile (!glfwWindowShouldClose(window)) {//per-frame time logicfloat currentFrame static_castfloat(glfwGetTime());deltaTime currentFrame - lastFrame;lastFrame currentFrame;//inputprocessInput(window);//renderglClearColor(0.2f, 0.3f, 0.3f, 1.0f);glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//lightingShader.use();lightingShader.setVec3(objectColor, 1.0f, 0.5f, 0.31f);lightingShader.setVec3(lightColor, 1.0f, 1.0f, 1.0f);// view/projection transformationsglm::mat4 projection glm::perspective(glm::radians(camera.Zoom), (float)SCR_WIDTH / (float)SCR_HEIGHT, 0.1f, 100.0f);glm::mat4 view camera.GetViewMatrix();lightingShader.setMat4(projection, projection);lightingShader.setMat4(view, view);// world transformationglm::mat4 model glm::mat4(1.0f);lightingShader.setMat4(model, model);//render the cubeglBindVertexArray(cubeVAO);glDrawArrays(GL_TRIANGLES, 0, 36);//lightingCubeShader.use();lightingCubeShader.setMat4(projection, projection);lightingCubeShader.setMat4(view, view);model glm::mat4(1.0f);model glm::translate(model, lightPos);model glm::scale(model, glm::vec3(0.2f));lightingCubeShader.setMat4(model, model);glBindVertexArray(lightCubeVAO);glDrawArrays(GL_TRIANGLES, 0, 36);glfwSwapBuffers(window);glfwPollEvents();}glDeleteVertexArrays(1, cubeVAO);glDeleteVertexArrays(1, lightCubeVAO);glDeleteBuffers(1, VBO);glfwTerminate();return 0;} void processInput(GLFWwindow* window) {if (glfwGetKey(window, GLFW_KEY_ESCAPE) GLFW_PRESS)glfwSetWindowShouldClose(window, true);if (glfwGetKey(window, GLFW_KEY_W) GLFW_PRESS)camera.ProcessKeyboard(FORWARD, deltaTime);if (glfwGetKey(window, GLFW_KEY_S) GLFW_PRESS)camera.ProcessKeyboard(BACKWARD, deltaTime);if (glfwGetKey(window, GLFW_KEY_A) GLFW_PRESS)camera.ProcessKeyboard(LEFT, deltaTime);if (glfwGetKey(window, GLFW_KEY_D) GLFW_PRESS)camera.ProcessKeyboard(RIGHT, deltaTime); }void framebuffer_size_callback(GLFWwindow* window, int width, int height) {// make sure the viewport matches the new window dimensions; note that width and // height will be significantly larger than specified on retina displays.glViewport(0, 0, width, height); } // glfw: whenever the mouse moves, this callback is called // ------------------------------------------------------- void mouse_callback(GLFWwindow* window, double xposIn, double yposIn) {float xpos static_castfloat(xposIn);float ypos static_castfloat(yposIn);if (firstMouse){lastX xpos;lastY ypos;firstMouse false;}float xoffset xpos - lastX;float yoffset lastY - ypos; // reversed since y-coordinates go from bottom to toplastX xpos;lastY ypos;camera.ProcessMouseMovement(xoffset, yoffset); }// glfw: whenever the mouse scroll wheel scrolls, this callback is called // ---------------------------------------------------------------------- void scroll_callback(GLFWwindow* window, double xoffset, double yoffset) {camera.ProcessMouseScroll(static_castfloat(yoffset)); } 颜色 - LearnOpenGL CN (learnopengl-cn.github.io)
http://www.yutouwan.com/news/278132/

相关文章:

  • 常熟做网站优化深圳ppt设计制作公司
  • 网站建设的技术目标现代化专业群建设网站
  • 刘家窑做网站保险官方网
  • 上海中企动力做网站多少钱如何做一个个人网站
  • 网站怎么添加后台正一品网站建设
  • 外贸网站建设模板销售案例网站
  • 二手车 网站程序网络运营岗位职责
  • 胶州市网站建设wordpress 登出
  • 松江专业做网站wordpress个人博客下载
  • 前端和做网站汕头娱乐场所最新消息
  • wordpress客户管理南宁企业网站排名优化
  • 网站开发名片怎么做企业网站模板下载选哪家
  • 做高仿网站平台免费推广
  • PS做游戏网站需要做几个网页北京电子商务网站制作
  • python做项目的网站网站开发的步骤过程
  • 做企业网站的意义公司网站建设选什么服务器
  • 福州论坛建站模板wordpress tint2.2
  • 做网站多少钱 佛山专业做网站的软件
  • 太原0元网站建设十大免费软件不收费安卓
  • 公司企业网站有哪些有经验的唐山网站建设
  • iis怎么设置网站什么网站可以免费做视频的软件
  • 开发网站的好处手机网站改版公司
  • 梅河口市建设局网站wordpress如何调用插件
  • 石景山高端网站建设公司的网站
  • 网站建设的内容规划网络营销方式对比分析论文
  • 制作短链接网站网站建设论文大全
  • 微信网站开发制作公司手机直播网站开发
  • 嘉兴网站优化排名上海都市建筑设计有限公司
  • 建站园自网站EXCel数据导入怎么做
  • 怎样做元古建筑的网站结构图招商网站建设目的