当前位置:网站首页>shader学习笔记(五)
shader学习笔记(五)
2022-08-09 22:05:00 【守着黎明看日出】
使物体动起来
1.移动角色
顶点着色器不修改网格数据,而是通过修改物体顶点将绘制到屏幕上的位置来移动物体。现使用按键的按下和抬起状态控制角色的移动和停止。
需要注意的是draw是执行渲染逻辑的地方,每一帧需要发生但与创建绘制没用直接关系的逻辑应该放在update函数中。
ofGetLastFrameTime()函数返回从上一帧开始到此帧所经过的时间量。
ofAPP.cpp代码
void ofApp::keyPressed(int key){
if (key == ofKey::OF_KEY_F5)
{
isMove = true;
}
}
void ofApp::keyReleased(int key){
if (key == ofKey::OF_KEY_F5)
{
isMove = false;
}
}
void ofApp::update(){
if (isMove) {
float speed = 0.4*ofGetLastFrameTime();
charPos += glm::vec3(speed,0,0);
}
}
void ofApp::draw(){
//该方法省略了其他代码,仅显示修改部分
spriteshader.begin();
spriteshader.setUniformTexture("alienTex", img, 1);
spriteshader.setUniform2f("offset", spriteFrame);
spriteshader.setUniform2f("size", spriteSize);
spriteshader.setUniform3f("walk", charPos);
quad.draw();
spriteshader.end();
边栏推荐
猜你喜欢
This article lets you quickly understand implicit type conversion [integral promotion]!
Bi Sheng Compiler Optimization: Lazy Code Motion
leetcode brush questions diary Calculate the number of elements on the right that is less than the current element
大型分布式存储方案MinIO介绍,看完你就懂了!
注意力引导网络用于视网膜图像分割
你真的了解乐观锁和悲观锁吗?
【LaTex】 Font “FandolSong-Regular“ does not contain requested(fontspec)Script “CJK“.如何抑制此种警告?
Liver all night to write a thirty thousand - word all the commands the SQL database, function, speaks clearly explain operators, content is rich, proposal collection + 3 even high praise!
Flask's routing (app.route) detailed
leetcode:331. 验证二叉树的前序序列化
随机推荐
Swift 需求 如何防止把view重复添加到win里面
Qt 消息机制和事件
用PLSQL导出Oracle一个表
D. Binary String To Subsequences
leetcode:332. 重新安排行程
Arcgis工具箱无法使用,显示“XML包含错误“的解决方法
typedef和#define的花里胡哨的用法
R语言ggstatsplot包grouped_ggscatterstats函数可视化分组散点图、并添加假设检验结果(包含样本数、统计量、效应大小及其置信区间、显著性、组间两两比较、贝叶斯假设)
web 面试高频考点 —— 性能优化篇(手写防抖、手写节流、XXS攻击、XSRF攻击)
Transfer Learning & Kemin Initialization
shell数组
This article lets you quickly understand implicit type conversion [integral promotion]!
Flutter 绘制美不胜收的光影流动效果
R语言ggplot2可视化:使用ggpubr包的ggerrorplot函数可视化误差线(可视化不同水平均值点以及se标准误差)、设置add参数为dotplot添加点阵图
OKR 锦囊妙计
&&、||、&、|
leetcode:331. 验证二叉树的前序序列化
PyQt5: Getting Started Tutorial
LeetCode_2632_字符串压缩
R语言patchwork包将多个可视化结果组合起来、使用plot_annotation函数以及tag_level参数将组合图用大写字母进行顺序编码、为组合图的标签添加自定义前缀信息