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 ...
随机推荐
- encode和decode区别
在python2 中是这种,编解码格式.在python3 中编码是会转换成byte类型即只显示ASCII码里的,编码会将byte转换成字符串类型.因此在py3中不需要使用,如果想要特定编码,在文件开头 ...
- 小程序开发-Now you can provide attr "wx:key" for a "wx:for" to improve performance
Now you can provide attr "wx:key" for a "wx:for" to improve performance 是一个关于性能优 ...
- 单点登录(SSO)详解
背景 在企业发展初期,企业使用的系统很少,通常一个或者两个,每个系统都有自己的登录模块,运营人员每天用自己的账号登录,很方便.但随着企业的发展,用到的系统随之增多,运营人员在操作不同的系统时,需要多次 ...
- C#中的委托(delegate)(个人整理)
Delegate 一.什么是委托? 委托是一种引用类型,它是函数指针的托管版本.在C#中,委托是一种可以把引用存储为函数的类型.委托可以引用实例和静态方法,而函数指针只能引用静态方法.委托的声明非常类 ...
- 03-python3.5-模拟购物车流程--更新追加细节注释功能
03-python3.5-模拟购物车流程--更新追加细节注释功能: 模拟购物车更新脚本: #!/usr/bin/env python #-*- coding: utf-8 -*- #__author_ ...
- Web前端方向课程要点:CSS3渐变制作过程
CSS3 渐变 CSS3 渐变(gradient)可以让你在两个或多个指定的颜色之间显示平稳的过渡. 以前,你必须使用图像来实现这些效果,现在通过使用 CSS3 的渐变(gradients)即可实现. ...
- 使用MSBuild Tools调用csproj项目文件发布网站时$(SolutionDir)宏参数值丢失为空的解决方案
使用Visual Studio打开解决方案,对<网站项目>右键点击<发布>,一切都是正常的,所有宏都可用,宏参数值也是正确的. 而通过批处理脚本命令调用MSBuild.exe对 ...
- github一些事
我的个人github地址是:https://github.com/BUGDuYu 我们开发团队小组的github地址是: https://github.com/APPdoctrine 资源推荐: gi ...
- mongo 修改器
[$inc] 作用:修改器$inc可以对文档的某个值为数字型(只能为满足要求的数字)的键进行增减的操作. Example: db.b.update({"uid" : "2 ...
- PHP CURL 账号密码 添加授权Authorization头Header
<?phpfunction http_request_xml($url,$data = null,$arr_header = null){ $curl = curl_init(); curl_s ...