当前位置:网站首页>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();
边栏推荐
猜你喜欢
【服务器数据恢复】SAN LUN映射出错导致文件系统数据丢失的数据恢复案例
One Pass 2074: [21CSPJ Popularization Group] Candy
ArrayList 和 LinkedList 区别
Chatting embarrassing scenes, have you encountered it?Teach you to get the Doutu emoticon package with one click, and become a chat expert
大型分布式存储方案MinIO介绍,看完你就懂了!
How do task flow executors work?
xctf攻防世界 Web高手进阶区 shrine
leetcode:325. 和等于k的最长子数组长度
2022年中国第三方证券APP创新专题分析
three.js镂空圆球拖拽变形js特效
随机推荐
工作经验-组件封装(拖拽排序组件)
R语言ggstatsplot包grouped_ggscatterstats函数可视化分组散点图、并添加假设检验结果(包含样本数、统计量、效应大小及其置信区间、显著性、组间两两比较、贝叶斯假设)
2022年中国第三方证券APP创新专题分析
mysql中的key是怎么用的,或者这个值有什么意义,如下图?
pip 离线到内网安装包
【Leetcode】2104. Sum of Subarray Ranges
阿里云架构师金云龙:基于云XR平台的视觉计算应用部署
【燃】是时候展现真正的实力了!一文看懂2022华为开发者大赛技术亮点
十步以内,用小程序快速生成App!
关于ETL的两种架构(ETL架构和ELT架构)
Sun Zhengyi lost 150 billion: it was expensive at the beginning
chart.js面积图曲线图统计插件
请讲一讲JS中的 for...in 与 for...of (上)
leetcode:321. 拼接最大数
CV review: softmax code implementation
daemon
OSS文件上传
【LaTex】 Font “FandolSong-Regular“ does not contain requested(fontspec)Script “CJK“.如何抑制此种警告?
OFDM 十六讲 7 - Inter-Symbol-Interference
three.js镂空圆球拖拽变形js特效