OpenGL初级_几何着色器Geometry shader理解与总结
发布日期:2022-02-14 16:09:37 浏览次数:21 分类:技术文章

本文共 949 字,大约阅读时间需要 3 分钟。

不能用大白话解释理论,就是对封装的信息不理解

            一句话:作为介于顶点着色器(原料-点/线/三角形…)和片段着色器(产品-颜色添加)间的可选阶段, 可以做到加工厂的作用(图元修改)

但是要注意三者之间的关系 :

            顶点着色器和几何着色器是多对一(局部范围内,整体还是多对多)的关系 , 几何着色器与片段着色器是一对一的关系

所以顶点着色器中:

            我们可以输出:纹理坐标/法线信息/颜色等信息,然后封装成像结构体一样的东西给几何着色器

vertex Shader          Geometry Shader        frag shader       ++   tex/normal/       ++ +------+          "triangle Editor"                 |           +-------------+        +-------------+       ++   tex/normal/      | +   +---+   |        |             |       ++ +------+-----------| |   |   |   | lerp   |-------------|                 |           | |   |   |   | color  |             |       ++   tex/normal/      | +---+   +---+------> |             |       ++ +------+           +-------------+        +-------------+

几何着色器中:

            由于我们设定了输入类型(点-1/线-2/三角形-3…) 使用内置方法获取顶点,常见的加工方法:绘制法线(就是输出法线方向的线段),物体爆破效果(三角形片段 沿着法线方向移动),或者添加一些简单的毛发, 通过sin值来修改法线波动(附近范围添加法线)

片段着色器 :

            当然几何着色器要传递纹理UV坐标给片段着色器依据纹理texture添加物体颜色

效果:

            
在这里插入图片描述

法线Debug:

在这里插入图片描述
风吹的毛发感(有点🤢):
在这里插入图片描述

转载地址:https://blog.csdn.net/qq_29601003/article/details/103577938 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:OpenGL初级_解决渲染层级导致的半透明深度问题(非次序无关)
下一篇:OpenGL初级_学习思路抽象化蓝图

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月16日 12时30分45秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

ireport连接mysql_ireport 4.5教程之数据源介绍 2019-04-21
mysql多维模型_数据仓库数据库设计方法---关系模型和多维模型比较分析 2019-04-21
局域网聊天程序 java MySQL_java 基于TCP/IP协议的局域网聊天小程序 2019-04-21
r glm 中的p值_假设检验中的P值 2019-04-21
mysql中sql语句结构_MySQL中使用sql语句获得表结构 2019-04-21
如何增加mysql主键约束_mysql修改表时怎么添加主键约束? 2019-04-21
java选择路径窗口_Java实现选择电脑路径的方法 2019-04-21
java 图像渐变_Java基础之在窗口中绘图——渐变填充(GradientApplet 1) 2019-04-21
冒泡排序面向对象java_所谓的面向对象实现的冒泡排序 2019-04-21
proto 客户端 JAVA_Kubernetes官方java客户端之五:proto基本操作 2019-04-21
java编写roguelike_RogueLike地牢生成算法Unity实现 2019-04-21
java ajax 修改数据库数据库数据库_AJAX 自学练习 无刷新提交并修改数据库数据并显... 2019-04-21
java并发编程指南博客_Java并发编程-synchronized指南 2019-04-21
java怎么中断阻塞状态_java并发编程()阻塞方法与中断方法 2019-04-21
java zlib 位运算_位运算入门:找出一个二进制数的最右端的第一个1;计算一个二进制数中1的个数;找出数组中唯一一个出现次数为奇数的数;找出数组中唯二两个出现次数为奇数的数... 2019-04-21
java lua热更新_lua热更新学习 2019-04-21
script执行php文件_php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法... 2019-04-21
apache 2.4 php5.4_apache2.4+php5.4+my sql 5.6,网站经常无故不能访问 2019-04-21
php apc.dll下载,PHP之APC缓存详细介绍 apc模块安装 2019-04-21
html贝塞尔曲线在线,贝塞尔曲线的一些事情_html/css_WEB-ITnose 2019-04-21