OpenGL.Tutorial15_Lightmaps
ZC:撤销 & 重做 — Blender Manual.html(https://docs.blender.org/manual/zh-hans/dev/interface/undo_redo.html)
ZC:Blender下载地址:Index of _release_Blender2.50alpha_.html(https://download.blender.org/release/Blender2.50alpha/)
第十五课:光照贴图(Lightmap).html(http://www.opengl-tutorial.org/cn/intermediate-tutorials/tutorial-15-lightmaps/)
1、Tutorial 15 Lightmaps—教育—视频高清在线观看-优酷.html(https://v.youku.com/v_show/id_XNDg5MjYzMzk2.html?spm=a2hzp.8253869.0.0)
按住 鼠标中键 转动空间
SHIFT + 鼠标中键 摇动(拖动/移动)空间
鼠标滚轮 空间 放大/缩小 选中物体:
A(ALL) 全选
B 框选
右键单击 选中特定物体 G键平移物体 --> G(抓取)
限制物体仅延制定坐标轴移动
X --> X轴
Y --> Y轴
Z --> Z轴 Blender中 Z轴朝上(与OpenGL不同)
Ctrl键 调整 移动量 --> G然后按住Ctrl
或按 Shift键细调 --> G再按Shift 按ESC键 取消 按R键 旋转
限制仅绕 X、Y、Z轴旋转 按S键 旋转
仅延 X、Y、Z轴缩放 Blender主要有两种模式
我们正处于 Object Model(物体模式),
按tab进入 Edit Model(编辑模式)
可对顶点进行编辑,对边进行编辑
2、【02:40】场景创建
(1)Tab键-->回到 Object Model --> 按Delete键删除物体(Delete,回车) --> 添加一个平台并放大(我的Blender是在如下图的地方创建平台)
(2)S,再按Ctrl -->进入 Edit Model-->选择一条边--> 按E键 拉伸一下(E(拉伸),再按Z(延Z轴拉伸)) --> 地面做好了(ZC:我觉得墙也做好了),再次回到Object Model
(3)添加一个球体 -->点击 Smooth(平滑)【03:30】
3、没找到视频中的"Smooth"按钮,下载了"blender-2.5-alpha2-win32"("C:\Users\33\Downloads\")
发现 貌似 自己创建的 形状,都有"Smooth"的哇,右键选中 某个 形状之后 如下图:
添加一个圆柱体:Blender菜单-->Add-->Mesh-->视频中和度娘翻译都是 圆柱体是Cylinder,而我的Blender-2.5-alpha2-win32里面却是Tube(管子)...
(然而添加进去之后看起来就是圆柱体,肉眼没看出中间是空心的管子,和视频中效果差不多)
--> 缩小一点 --> 按Z轴放大 现在要平滑这些面的法线(圆柱体的法线)【04:00】--> 但顶面不必,∵它们都是朝上的(ZC:∵朝上∴看不见∴不必平滑顶面?)--> 进入 Wireframe Model(线框模式),如下图:
【04:10】进入Edit Mode --> 【04:15】按A键 选择所有物件 --> 点击 按钮"Face select mode"--> 按B键 框选 这些面 --> 点击 按钮"Smooth"
ZC: 这里,他是在对 圆柱体的所有面 做平滑操作
ZC: 这一步,我在操作的时候,发现一个和视频中不太一样的现象,视频中进入“Edit Mode”后,点击 按钮"Face select mode",然后 按A键全选,貌似选择的是所有物体的所有面(还是一个面也没有选择到?);而我的Blender2.5里面,在"Edit Mode"和"Face select mode"状态下,按A键全选 貌似选中的是"Object Mode"状态下 选中的某个物体的全部 面。
【04:28】--> 返回 "Solid Mode"(实体模式) 返回"Object Mode"
【04:40】还得移动光源 ZC:看起来 将 光源 与 "UV Sphere"球 对齐
【05:02】场景创建完毕
【05:05】预览渲染
最简单的方法是 去 View(视图)菜单--> Toggle Quad View(切换到四视图)
ZC:右键选中 某个物品后,可通过 上面红框中的按钮来进行 移动旋转等的操作(Camera同样可以操作,或者说 一般就是主要操作Camera?)
完成之后,按F12。这就是场景的模样了。按ESC键退出(ZC:也就是回到了 "四视图"的那个界面了)。再点 “Toggle Quad View”切换回来(ZC:注意 切换回来时 可能样子和原来不同,其实只是视角变了,按住鼠标中键转动一下即可)
【06:10】组合所有物体
实际使用3D引擎是并不需要这么做,但程序中读取obj模型仅考虑一个物体,我们不得不这么做,按住Shift键选取多个物体(Shift+鼠标右键单击)--> join:
【06:35】现在就只有一个物体了,包含了所有的顶点
【06:45】创建 UV Map
首先得新建一幅图:【06:55】Split Area(鼠标右击视图边缘)--> 右侧的area选择"UV/Image Editor"
--> 新建Image:"Image -- New Image",名称:lightmap,大小1024*1024 正好是2次幂纹理,不要Alpha通道,
这就是你创建的黑色纹理,我们将在这里渲染场景。
回到主视图,进入 "Edit Mode",确保所有物体都处于选中状态--> 点击"UV Unwrap... -- Smart UV Project"(如下图[里面还包含了 创建新Image的菜单选项]:)
"Island Margin"随便设置个值,比如0.1。【07:47】这就是你的纹理投影图。(ZC:从上面的“右侧的area选择"UV/Image Editor"”开始,一直到这里我的Blender里面的效果和视频中一直都不怎么像...)
4、
5、
6、ZC:注意点,当时看到 不知所措...:
6.1、blender-2.5-alpha2-win32,"Object Mode" & "solid" 状态下
(1)Translate manipulator mode:选中物体时,辅助坐标是 箭头的形式
(2)Rotate manipulator mode:选中物体时,是旋转的形式(当时看到这个 不知道怎么弄灰 坐标辅助箭头,一阵懵逼)
(3)Scale manipulator mode
7、
8、
9、
OpenGL.Tutorial15_Lightmaps的更多相关文章
- 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)
0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...
- [OpenGL超级宝典]专栏前言
我小时候的梦想呢,是做宇航员或者科学家或者是做一款属于自己的游戏,后来前面两个梦想都没有实现,于是我就来实现我的第三个梦想了,,,我呢,也算是零基础,因为我的专业是物联网工程,这个专业覆盖面之广,简直 ...
- OpenGL超级宝典笔记----渲染管线
在OpenGL中任何事物都在3D空间中,但是屏幕和窗口是一个2D像素阵列,所以OpenGL的大部分工作都是关于如何把3D坐标转变为适应你屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的 ...
- OpenGL超级宝典笔记----框架搭建
自从工作后,总是或多或少的会接触到客户端3d图形渲染,正好自己对于3d图形的渲染也很感兴趣,所以最近打算从学习OpenGL的图形API出发,进而了解3d图形的渲染技术.到网上查了一些资料,OpenGL ...
- 现代3D图形编程学习-基础简介(3)-什么是opengl (译)
本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...
- OpenGL shader 中关于顶点坐标值的思考
今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计 ...
- OpenGL: 纹理采样 texture sample
Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...
- OpenGL ES 3.0: 图元重启(Primitive restart)
[TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...
- opengl 笔记(2)
/*- * Opengl Demo Test * * Fredric : 2016-7-10 */ #include <GLUT/GLUT.h> #include <stdlib.h ...
随机推荐
- java学习之方法内部类
*方法内部类 * 在类中的方法内定义一个类 * 注意: * 1 方法内部类只能在类的方法内实例化不可以在此方法外实例化 * 2 .方法内部类对象只能用所在方法体中的变量不能改,jdk1.8可以 * 以 ...
- Linux Centos 删除除某(多)个文件之外的所有文件
好久没有写东西了.通常我们通过rm -rf *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos ...
- 统计Oracle一个表空间中各个segment占用的空间大小
SQL语句参考以下: select owner,segment_name,segment_type,tablespace_name,sum(bytes)/1024/1024/1024 from dba ...
- Python之socket_udp
UDP服务端&客户端编程 ''' udp编程 创建socket对象,socket.SOCK_DGRAM 绑定ip和port,bind()方法 传输数据 1.接收数据,socket.recvfr ...
- MyBatis探究-----为实体类Bean取别名,配置typeAliases
1.单个实体类设置别名 1.1 不使用alias <typeAliases> <!-- typeAlias:为某个java类型起别名 ; type:指定要起别名的类型全类名; 默认别 ...
- es7,es8
ES7新特性 ES7在ES6的基础上添加了三项内容:求幂运算符(**).Array.prototype.includes()方法.函数作用域中严格模式的变更. Array.prototype.incl ...
- Linux常用的基础命令总结
man 查看英文命令帮助 可以看作--help 拷贝目录的命令cp -a 包含所有 ls -a 显示所有文件包括隐藏文件 -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...
- 安卓加载网络图片OOM问题解决
前言:次片是上篇后续出现的问题,在网上找了很多博客,越解决越乱,好在最后看了郭霖的博客给了我一点思路 借鉴:http://blog.csdn.net/guolin_blog/article/detai ...
- 多线程校验url的种种。。。
东西不经常看就容易忘,这两天抽空写了一个补丁库url验证工具,挺曲折的,记录一下需求大概流程如下:转换补丁库为xml,解析xml得到所有url,多线程校验url.就不到100行有效代码,断断续续写了三 ...
- Derivative of Softmax Loss Function
Derivative of Softmax Loss Function A softmax classifier: \[ p_j = \frac{\exp{o_j}}{\sum_{k}\exp{o_k ...