• WebGL编程指南
21年品牌 40万+商家 超1.5亿件商品

WebGL编程指南

21.45 2.2折 98 九五品

仅1件

北京通州
认证卖家担保交易快速发货售后保障

作者(美)松田浩一,(美)李,谢光磊

出版社电子工业出版社

ISBN9787121229428

出版时间2014-06

版次1

装帧平装

开本16开

纸张胶版纸

页数470页

字数99999千字

定价98元

上书时间2024-12-02

纵列風

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九五品
商品描述
基本信息
书名:WebGL编程指南
定价:98.00元
作者:(美)松田浩一,(美)李,谢光磊
出版社:电子工业出版社
出版日期:2014-06-01
ISBN:9787121229428
字数:640000
页码:470
版次:1
装帧:平装
开本:16开
商品重量:
编辑推荐
  使用WebGL,你可以在浏览器中,不依赖任何插件创建出精美的可交互三维图形。WebGL技术使得创建新一代3D网页游戏、用户界面、数据可视化方案成为可能,这些程序能够运行任何支持标准浏览器的PC、智能手机、平板电脑、家用游戏机或其他设备上。《WebGL编程指南》将会帮助你快速入门学习可交互的WebGL 3D编程,即使你还不了解HTML5、JavaScript、三维图形学理论、数学基础和OpenGL也没有关系。  你将会一步一步地学习真实的示例程序。随着示例程序从简单变复杂,你也将逐渐掌握使用WebGL开发虚拟逼真的网页和三维图形的技能。多媒体、三维图形学和WebGL领域的先驱者Kouichi Matsuda博士和Rodger Lea博士在这本书中提供了易于上手、重点清晰的WebGL教程,以及共计100个可下载的示例程序,每个程序都讨论了一个具体的WebGL话题。  你将从基本的技术比如渲染、动画、为三角形贴上纹理开始,一路学习到高级的WebGL技术,比如雾化、阴影、切换着色器、显示由Blender等建模工具创建的三维模型。这本书并不仅仅向你传授实践方法,同时也会向你提供一个小型的代码库,方便你在学习完本书后,开始编写自己的程序。  本书的内容包括:  √ WebGL的起源、核心概念、特性、优势以及与其他Web标准的结合;  √ canvas和基本的WebGL函数如何协作以显示三维图形;  √ 使用OpenGL ES着色器语言(GLSL ES)编写着色器代码;  √ 三维场景渲染:表示用户视野、控制可视空间、裁剪、三维对象创建、透视;  √ 通过光照和层次结构模型产生更真实的效果;  √ 高级技巧:对象操作,HUD、混合、着色器切换等等;  √ 极具价值的附录,涵盖了从坐标系统到矩阵、从着色器加载到浏览器设置等诸多关键知识点。 
内容提要
WebGL 是一项在网页上渲染三维图形的技术,也是HTML5 草案的一部分。  《WebGL编程指南》的主要篇幅讲解了WebGL 原生API 和三维图形学的基础知识,包括渲染管线、着色器、矩阵变换、着色器编程语言(GLSL ES)等等,也讲解了使用WebGL 渲染三维场景的一般技巧,如光照、阴影、雾化等等。《WebGL编程指南》提供了丰富的示例程序供读者钻研,也提供了极具价值的附录供读者参考。  《WebGL编程指南》适合有一定前端开发基础,希望学习WebGL,但对三维图形学缺乏了解的程序员们阅读。
目录
章 WebGL 概述 WebGL 的优势使用文本编辑器开发三维应用轻松发布三维图形程序充分利用浏览器的功能学习和使用WebGL 很简单WebGL 的起源WebGL 程序的结构总结第2 章 WebGL 入门 Canvas 是什么?使用标签DrawRectanglejs短的WebGL 程序:清空绘图区HTML 文件(HelloCanvas)JavaScript 程序(HelloCanvasjs)用示例程序做实验绘制一个点(版本1)HelloPoint1HelloPoint1js着色器是什么?使用着色器的WebGL 程序的结构初始化着色器顶点着色器片元着色器绘制操作WebGL 坐标系统用示例程序做实验绘制一个点(版本2)使用attribute 变量示例程序(HelloPoint2js)获取attribute 变量的存储位置向attribute 变量赋值glvertexAttrib3f 的同族函数用示例程序做实验通过鼠标点击绘点示例程序(ClickedPointsjs)注册事件响应函数响应鼠标点击事件用示例程序做实验改变点的颜色示例程序(ColoredPointsjs)uniform 变量获取uniform 变量的存储地址向uniform 变量赋值gluniform4f 的同族函数总结第3 章 绘制和变换三角形 绘制多个点示例程序(MultiPointjs)使用缓冲区对象创建缓冲区对象(glcreateBuffer)绑定缓冲区(glbindBuffer)向缓冲区对象中写入数据(glbufferData)类型化数组将缓冲区对象分配给attribute 变量(glvertexAttribPointer)开启attribute 变量(glenableVertexAttribArray)gldrawArrays 的第2 个和第3 个参数用示例程序做实验Hello Triangle示例程序(HelloTrianglejs)基本图形用示例程序做实验Hello Rectangle(HelloQuad)用示例程序做实验移动、旋转和缩放平移示例程序(TranslatedTrianglejs)旋转示例程序(RotatedTrianglejs)变换矩阵:旋转变换矩阵:平移4×4 的旋转矩阵示例程序(RotatedTriangle_Matrixjs)平移:相同的策略变换矩阵:缩放总结第4 章 高级变换与动画基础 平移,然后旋转矩阵变换库:cuon-matrixjs示例程序(RotatedTriangle_Matrix4js) 复合变换示例程序(RotatedTranslatedTrianglejs)用示例程序做实验动画动画基础示例程序(RotatingTrianglejs)反复调用绘制函数(tick)按照指定的旋转角度绘制三角形(draw)请求再次被调用(requestAnimationFrame)更新旋转角(animate)用示例程序做实验总结第5 章 颜色与纹理 将非坐标数据传入顶点着色器示例程序(MultiAttributeSizejs)创建多个缓冲区对象glvertexAttribPointer 的步进和偏移参数示例程序(MultiAttributeSize_Interleavedjs)修改颜色(varying 变量)示例程序(MultiAttributeColorjs)用示例程序做实验彩色三角形(ColoredTrianglejs)几何形状的装配和光栅化调用片元着色器用示例程序做实验varying 变量的作用和内插过程在矩形表面贴上图像纹理坐标将纹理图像粘贴到几何图形上示例程序(TexturedQuadjs)设置纹理坐标(initVertexBuffers)配置和加载纹理(initTextures)为WebGL 配置纹理(loadTexture)图像Y 轴反转激活纹理单元(glactiveTexture)绑定纹理对象(glbindTexture)配置纹理对象的参数(gltexParameteri)将纹理图像分配给纹理对象(gltexImage2D)将纹理单元传递给片元着色器(gluniform1i)从顶点着色器向片元着色器传输纹理坐标在片元着色器中获取纹理像素颜色(texture2D)用示例程序做试验使用多幅纹理示例程序(MultiTexturejs)总结第6 章 OpenGL ES 着色器语言(GLSL ES) 回顾:基本着色器代码GLSL ES 概述你好,着色器!基础执行次序注释数据值类型(数值和布尔值)变量GLSL ES 是强类型语言基本类型赋值和类型转换运算符矢量和矩阵赋值和构造访问元素运算符结构体赋值和构造访问成员运算符数组取样器(纹理)运算符优先级程序流程控制:分支和循环if 语句和if-else 语句for 语句continue、break 和discard 语句函数规范声明参数限定词内置函数全局变量和局部变量存储限定字const 变量Attribute 变量uniform 变量varying 变量精度限定字预处理指令总结第7 章 进入三维世界 立方体由三角形构成视点和视线视点、观察目标点和上方向 示例程序(LookAtTrianglesjs)LookAtTrianglesjs 与RotatedTriangle_Matrix4js从指定视点观察旋转后的三角形示例程序(LookAtRotatedTrianglesjs)用示例程序做实验利用键盘改变视点示例程序(LookAtTrianglesWithKeysjs)独缺一角可视范围(正射类型)可视空间定义盒状可视空间示例程序(OrthoView)示例程序(OrthoViewjs)JavaScript 修改HTML 元素顶点着色器的执行流程修改near 和far 值补上缺掉的角(LookAtTrianglesWithKeys_ViewVolumejs)用示例程序做实验可视空间(透视投影)定义透视投影可视空间示例程序(perspectiveviewjs)投影矩阵的作用共冶一炉(模型矩阵、视图矩阵和投影矩阵)示例程序(PerspectiveView_mvpjs)用示例程序做实验正确处理对象的前后关系隐藏面消除示例程序(DepthBufferjs)深度冲突立方体通过顶点索引绘制物体示例程序(HelloCubejs)向缓冲区中写入顶点的坐标、颜色与索引为立方体的每个表面指定颜色示例程序(ColoredCubejs)用示例程序做实验总结第8 章 光照 光照原理光源类型反射类型平行光下的漫反射根据光线和表面的方向计算入射角法线:表面的朝向示例程序(LightedCubejs)环境光下的漫反射示例程序(LightedCube_ambientjs)运动物体的光照效果魔法矩阵:逆转置矩阵示例程序(LightedTranslatedRotatedCubejs)点光源光示例程序(PointLightedCubejs)更逼真:逐片元光照示例程序(PointLightedCube_perFragmentjs)总结第9 章 层次模型 多个简单模型组成的复杂模型层次结构模型单关节模型示例程序(JointModejs)绘制层次模型(draw)多节点模型示例程序(MultiJointModeljs)绘制部件(drawBox)绘制部件(drawSegments)着色器和着色器程序对象:initShaders 函数的作用创建着色器对象(glcreateShader)指定着色器对象的代码(glshaderSource)编译着色器(glcompileShader)创建程序对象(glcreateProgram)为程序对象分配着色器对象(glattachShader)连接程序对象(gllinkProgram)告知WebGL 系统所使用的程序对象(gluseProgram)initShaders 函数的内部流程总结0 章 高级技术 用鼠标控制物体旋转如何实现物体旋转示例程序(RotateObjectjs)选中物体如何实现选中物体示例程序(PickObjectjs)选中一个表面示例程序(PickFacejs)HUD(平视显示器)如何实现HUD示例程序(HUD)示例程序(HUDjs)在网页上方显示三维物体雾化(大气效果)如何实现雾化示例程序(Fogjs)使用w 分量(Fog_wjs)绘制圆形的点如何实现圆形的点示例程序(RoundedPointjs)α 混合如何实现α 混合示例程序(LookAtBlendedTrianglesjs)混合函数半透明的三维物体(BlendedCubejs)透明与不透明物体共存切换着色器如何实现切换着色器示例程序(ProgramObjectjs)渲染到纹理帧缓冲区对象和渲染缓冲区对象如何实现渲染到纹理示例程序(FramebufferObjectjs)创建帧缓冲区对象(glcreateFramebuffer)创建纹理对象并设置其尺寸和参数创建渲染缓冲区对象(glcreateRenderbuffer)绑定渲染缓冲区并设置其尺寸(glbindRenderbuffer,glrenderbufferStorage)将纹理对象关联到帧缓冲区对象(glbindFramebuffer,glframebufferTexture2D)将渲染缓冲区对象关联到帧缓冲区对象(glframebufferRenderbuffer)检查帧缓冲区的配置(glcheckFramebufferStatus)在帧缓冲区进行绘图绘制阴影如何实现阴影示例程序(Shadowjs)提高精度示例程序(Shadow_highpjs)加载三维模型OBJ 文件格式MTL 文件格式示例程序(OBJViewerjs)自定义类型对象示例程序(OBJViewerjs 解析数据部分)响应上下文丢失如何响应上下文丢失示例程序(RotatingTriangle_contextLostjs)总结附录A WebGL 中无须交换缓冲区 附录B GLSL ES 10 内置函数 角度和三角函数指数函数通用函数几何函数矩阵函数矢量函数纹理查询函数附录C 投影矩阵 正射投影矩阵透视投影矩阵附录D WebGL/OpenGL :左手还是右手坐标系? 示例程序(CoordinateSystemjs)隐藏面消除和裁剪坐标系统裁剪坐标系和可视空间什么是对的?总结附录E 逆转置矩阵 附录F 从文件中加载着色器 附录G 世界坐标系和本地坐标系 本地坐标系世界坐标系变换与坐标系附录H WebGL 的浏览器设置
作者介绍
关于作者  Kouichi Matsuda 博士是多媒体产品用户界面和用户体验设计方面的专家。他先后供职于日本电气(NEC)、索尼(Sony) 研发中心、索尼(Sony) 计算机科学实验室,曾经做过产品研发,也做过科学研究,终回到产品研发的岗位。目前,他是用户体验和人机交互领域的首席研究员,负责多款消费类电子产品的设计。他曾经设计了社交三维虚拟世界“PAW”,也曾经参与过VRML97(ISO/IEC 14772-1:1997) 标准的开发工作,在VRML和X3D(WebGL 的前身) 社区中仍然非常活跃。他撰写过15 本计算机技术的书籍,并翻译过25 本相关书籍。他专长于用户体验、用户界面、人机交互、自然语言处理和面向娱乐的网络设备,以及接口代理系统等领域。他不仅对技术领域的新鲜事物充满热情,还热衷于温泉、夏季的海滩、红酒和漫画(为此他已经沉迷于绘制插画一段时间了)。他在东京大学工程系获得了博士学位,你可以通过WebGL.prog.guide@gmail.com 联系他。  Rodger Lea 博士是卑诗大学媒体与图像跨学科中心的兼职教授,对多媒体和分布式计算等领域很感兴趣。他和他带领的研究小组在学术和工业领域耕耘超过20 年,参与制定了VRML97 标准,开发了多媒体操作系统、可交互数字电视原型,并领导了家用多媒体网络标准的制定工作。他发表了60 多篇学术论文,著有3 本技术书籍,并拥有12 项专利。目前,他的研究集中在探索发展中的互联网,但他仍然对有关多媒体和图形学的一切抱有热情。  关于译者  谢光磊,毕业于南京大学,目前为中科院在读硕士,即将成为淘宝UED 的一名前端工程师。因一次偶然的机会接触WebGL 而对其萌生兴趣,并愿意持久深入地研究这项技术。个人站点为 www.eguanglei.com。
序言

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP