经过一段事件的学习,已经可以正确加载obj模型了,并支持鼠标缩放,调整相机的x,y坐标。下面是结果图片,贴出来分享一下。

顶点着色器代码:

#version 430layout (location=0) in vec3 position;
uniform mat4 mv_matrix;
uniform mat4 proj_matrix;layout (location=1) in vec3 innormal;
out vec3 FragPos;
out vec3 Normal;
uniform mat4 model;layout (location=2) in vec3 VertexColor;
out vec3 verColor;void main(void)
{gl_Position = proj_matrix * mv_matrix * vec4(position,1.0);FragPos=vec3(model*vec4(position,1.0)*mv_matrix);Normal=mat3(transpose(inverse(model)))*innormal;verColor=VertexColor;
}

片段着色器代码:

#version 430out vec4 FragColor;
in vec3 Normal;
in vec3 FragPos;uniform vec3 lightPos;
uniform vec3 lightColor;
uniform vec3 objectColor;
in vec3 verColor;
void main()
{//环境光float ambientStrength=0.5;vec3 ambient=ambientStrength*lightColor;//漫反射vec3 norm=normalize(Normal);vec3 lightDir=normalize(lightPos-FragPos);float diff=max(dot(norm,lightDir),0.0);vec3 diffuse=diff*lightColor;vec3 result=(ambient+diffuse)*verColor;FragColor=vec4(result,1.0);
}

用C++可编程管线渲染obj模型相关推荐

  1. WebGL笔记(六)_Three.js渲染obj模型并同时渲染全景图

    基本思路简述:一个模型的渲染的流程是,创建一个场景,并将模型和相机放到场景中合适的位置:然后就会呈现出一个3D模型在屏幕上.全景图的呈现其实就是在创建一个场景.相机.几何球.模型和全景同时被呈现在屏幕 ...

  2. OpenGL OBJ模型加载.

    在我们前面绘制一个屋,我们可以看到,需要每个立方体一个一个的自己来推并且还要处理位置信息.代码量大并且要时间.现在我们通过加载模型文件的方法来生成模型文件,比较流行的3D模型文件有OBJ,FBX,da ...

  3. threejs加载obj模型_Vulkan编程指南(章节31-载入模型)

    章节31 载入模型 介绍 本章节我们将会渲染一个带有纹理的三维模型. 库 我们使用tinyobjloader库来从OBJ文件加载顶点数据.tinyobjloader库是一个简单易用的单文件OBJ加载器 ...

  4. Threejs渲染obj+mtl模型源码,3D工厂模型

    1,介绍 Threejs实现引入工厂模型,加载obj+mtl模型源码下载,可用于学习研究,二次开发 2,部分代码 // 创建一个场景,它将包含我们所有的元素,如物体,相机和灯光. var scene ...

  5. OBJ模型文件的结构、导入与渲染

    在[3DS文件结构的初步认识]中提及了3DS格式模型文件.固然3DS格式很常用,但OBJ格式的模型也是很常见的,于是咔嚓了一下心,熟悉了一下格式,并写了一个导入OBJ格式模型的类,顺便有此文.--Zw ...

  6. DirectX的OBJ模型加载与渲染

    在之前的DirectX例子里我用的模型是.x文件,DirectX有一个方法D3DXLoadMeshFromX可以加载.x模型,但是这里有个问题,.x文件是没法用文本编辑器打开查看结构的,这里我来演示一 ...

  7. 从固定管线到可编程管线:十段代码入门OpenGL

    文章目录 1. 最简单的OpenGL应用程序 2. 视点系统和投影矩阵 3. 深度缓冲区和深度测试 4. 模型的旋转和平移 5. VBO和顶点混合数组 6. 纹理映射和纹理坐标 7. 光照和法向量计算 ...

  8. 7、计算机图形学——图形管线渲染与纹理映射

    一.图形渲染管线 管线渲染其实就是将三维物体如何呈现到计算机屏幕上的过程,图形渲染管线的整体大致流程如下 顶点处理过程就是进行MVP变换,最终得到一系列的二维坐标点.而三角化就是将这一系列的二维坐标点 ...

  9. android OpenGL渲染3D模型文件

    码字不易,转载请注明出处喔 https://blog.csdn.net/newchenxf/article/details/121402859 1 前言 大部分OpenGL示例代码,要么播放个视频,要 ...

  10. Three.js OBJ模型的剖切

    一. 由于项目需要,我进行了模型剖切功能方面的研究,如果单纯实现模型剖切效果,我相信你会从这篇文章中得到收获. 二. 我对模型剖切功能的研究主要基于three.js中的webgl_clipping_s ...

最新文章

  1. Cisco路由器故障诊断技术专题
  2. Machine Learning week 10 quiz: Large Scale Machine Learning
  3. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果
  4. php里的%是什么意思,大家帮小弟我看下这段代码中的“%”是什么意思
  5. ftb测试软件,EXFO推出FTB-2光纤测试平台
  6. 超实用!18 个开箱即用的 Shell 脚本,拿好了~
  7. WordPress插件-WBOLT热门关键词推荐插件v1.3.0 Pro绿色版
  8. 开发用的一些工具(更新中)
  9. 站在“巨人”的肩膀上运维
  10. 理解JS散度(Jensen–Shannon divergence)
  11. wpsmac和pc版的区别_Mac系统下金山WPS和微软Office 哪个更好更好用
  12. 最全的蓝桥杯嵌入式备赛集合~
  13. 快乐大本营html5小游戏,快乐大本营小游戏规则-新年小游戏.doc
  14. 关于物联网远程控制技术,你了解的有多少?
  15. JQ中的“对象不支持此方法或属性”
  16. 有哪些免费好用的在线视频编辑工具?
  17. 阿里云oss(图片存储)--fastdfs (视频存储)
  18. 施工阶段如何应用BIM技术,建模助手有话说
  19. 产品经理面试题目汇总
  20. ros中Odom话题与odom坐标系的理解

热门文章

  1. highcharts使用downloadCSV导出数据时间与实际时间不对应
  2. 安装RHEL 7(Centos7类同)
  3. MATLAB经纬度转化
  4. 2021年中国生育保险参保人数及待遇情况分析:广东省参保人数、享受生育保险待遇人次均居全国首位[图]
  5. word转简洁html工具,Convert Word to HTML(Word转HTML工具)
  6. 微信小程序支付---详解(python)
  7. 基于KMP与Levenshtein模糊匹配算法的银行联行号查询(转)
  8. 分享详细剪辑步骤,做自媒体一个月7852,全程复制粘贴即可
  9. 使用android busybox拷贝文件到qnx系统
  10. 计算机网络第二章 韩立刚