学习WebGL:第一个代码

利用canvas和javascript,就可以在页面绘制2d图像,但对于3d的图像,目前是无能为力的。要绘制3d图像,就必须使用WebGL。

以我的理解,WebGL是内嵌在浏览器中,在使用时是通过javascript调用浏览器提供的WebGL API,然后在canvas绘图区绘制图像。刚开始接触WebGL时,没有理解这一点,于是觉得代码怎么会写得这么麻烦,重重复复的写一堆就为一个简单的的功能。

下面是一个最简单的WebGL例子

<!DOCTYPE html>
<html lang=‘zh-cmn-Hans‘>
<head>
<meta charset=‘utf-8‘ />
<title>Canvas - WebGL</title>
</head>
<body>
<h1>HTML5 - Canvas - WebGL</h1>
<canvas id=‘glcanvas‘ width=‘500‘ height=‘500‘></canvas>
<script type="text/javascript">
window.onload = function(){
    init();
}
function init() {
    var canvas, gl;
    canvas = document.getElementById(‘glcanvas‘);
    gl = canvas.getContext(‘webgl‘) || canvas.getContext(‘experimental-webgl‘); //获取WebGL绘图上下文
    if (!gl) {
        console.log(‘不支持WebGL!‘);
        return;
    }
    gl.clearColor(0.0, 0.0, 0.0, 1.0); //设置背景色
    gl.clear(gl.COLOR_BUFFER_BIT|gl.DEPTH_BUFFER_BIT); //清空绘图区
}
</script>
</body>
</html>

需要注意的是,在WebGL中,颜色RGBA中的值是使用浮点数的,其大小是从0.0到1.0,比如红色是:(1.0, 0.0, 0.0, 1.0)

时间: 2024-10-03 20:07:22

学习WebGL:第一个代码的相关文章

Android_5_学习《第一行代码》的使用摄像头和相册无法显示图片问题解决

解决方法参照网上教程: 学习<第一行代码>的使用摄像头和相册无法显示图片总结 在<第一行代码>的8.3小节调用摄像头和相册时,发现书上把代码敲完后,可以调用摄像头拍照, 勾选确认后回到APP页面时,并没有显示图片,选择相册图片也是一样,可以打开相册, 选中相片返回后也是无法在APP上显示,解决过程如下: 书上原代码:(粘贴自网上) 只说显示的问题吧,注意到进入显示有: 这么一个限定条件,而RESULT_OK = -1 ,那么requestCode是多少呢?前面是switch(req

002.[python学习]python编码规范pep8学习——PEP8第一部分代码布局

关于PEP8的详细说明可以参考官方原文:http://legacy.python.org/dev/peps/pep-0008/ 我参考官方文档及其他文章,摘出相关内容而得此文章,具体参考其他文章见文中最后参考资料处. 当想要让自己所写的代码为更多人使用.交流学习时,不能写出只有机器认识的代码,而是对于人而言具有良好的可读性,此时就需要遵从一个公共的约束来规范自己的代码,那么<Style Guide for Python Code(PEP8)>是个很好的选择. 首先PEP8中声明,有以下有理由忽

学习《第一行代码》使用实机测试所遇问题(二)

实机使用酷派大神F1,添加menu后,右上角不出现菜单,此时在java代码中加入以下方法在onCreate中运行 private void makeActionOverflowMenuShown() { //devices with hardware menu button (e.g. Samsung Note) don't show action overflow menu try { ViewConfiguration config = ViewConfiguration.get(this)

Android Studio:Unable to add window [email&#160;protected] -- permission denied for this window 第一行代码

学习<第一行代码>的时候,出现的错误. java.lang.RuntimeException: Unable to start receiver com.example.sevenun.littledemo.receiver.ForceOfflineReceiver: android.view.WindowManager$BadTokenException: Unable to add window [email protected] -- permission denied for this

【java学习系列】 Android第一本书《第一行代码》

开始Java的学习,从Android,开始吧.<第一代码>开始阅读和调试demo例子. 下面是 <第一行代码>的思维导图:

20172327 2017-2018-2 《第一行代码Android》第一章学习总结

学号 2017-2018-2 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动,音频驱动,照相机驱动,蓝牙驱动,Wi-Fi驱动,电源管理等. 2.系统运行底层 - 通过一些C/C++库来为Android系统提供了主要的特性支持 库名 功能 SQLite库 提供数据库的支持 OpenGL/ES库 提供3D绘图支持 Webkit

《第一行代码:Android》学习笔记:Activity生命周期

<第一行代码:Android> 郭霖(著) Activity所在的栈为后进先出(Last In First Out)结构. Activity状态 运行状态(S1): 该Activity处于与User交互的状态,即是位于栈顶的Activity. 系统一般不考虑回收该处内存. 暂停状态(S2): Activity不再处于栈顶(Another activity comes in front of the activity),但仍然是可见的. 系统只有在内存极低时才考虑回收内存. 停止状态(S3):

《第一行代码:Android》学习笔记:Activity &amp; Intent

<第一行代码:Android> 郭霖(著) 2.2 Activity的基本用法 隐藏标题栏 在AndroidManifest.xml中配置,作为全局配置,在所有Activity范围内生效 android:theme="@android:style/Theme.NoTitleBar" 在代码中配置,必须在setContentView()前调用该方法,只在当前Activity生效 requestWindowFeature(Window.FEATURE_NO_TITLE); 在s

安卓开发学习经历2--《第一行代码》coolweather项目SQL语句同一个“陷阱”掉两次 注意转义字符等特殊字符正确书写 关于Id字段自增加体会

今天,在运行<第一行代码>coolweather第二阶段代码,又一次报错,还是神奇地与昨天相似,提示,city_id字段不存在,这里我有两种理解,一种是sql语句出错了,另外一种是没有获取city_id值,关于前一种,我在”详细“检查比较了,County表的建表语句后,首先排除了,然后一股脑投入如何解决第二种问题当中,最后,再一次惨痛事实告诉我,以后只要提示“no such column” 的提示,那么毫无疑问,肯定是数据库里面没有这个字段也就是说,sql语句建表那里就出错了.如图: sql语

安卓开发学习历程1——《第一行代码》coolweather项目setOnItemClickListener函数,Sql语句修改对模拟app程序机影响

今天,将<第一行代码>最后实战的coolweather项目,认真做了一遍. 今晚,在书中第一阶段开发代码认眞在Android studio敲完,发现setOnItemClickListener函数按照书中报错,原书如下所示: 但这样,报错,gradel提示该类不存在,现在还不清楚是不是因为作者版本太旧的原因,有待查证,后面,我用了下面方法,就编译通过,如下: 其实,我就是调用了AdapterView里面的OnItemClickListener方法而已. 此外,还发现一个问题,那就是我在grad