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(切换到四视图)

   

 【05:20】在 "Top View"(顶视图)可以看到 相机 --> 选中相机,移动(相机) --> 用 Gizmo做旋转更方便【05:40】。ZC:就是下面的图:

 

  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的更多相关文章

  1. 【AR实验室】OpenGL ES绘制相机(OpenGL ES 1.0版本)

    0x00 - 前言 之前做一些移动端的AR应用以及目前看到的一些AR应用,基本上都是这样一个套路:手机背景显示现实场景,然后在该背景上进行图形学绘制.至于图形学绘制时,相机外参的解算使用的是V-SLA ...

  2. [OpenGL超级宝典]专栏前言

    我小时候的梦想呢,是做宇航员或者科学家或者是做一款属于自己的游戏,后来前面两个梦想都没有实现,于是我就来实现我的第三个梦想了,,,我呢,也算是零基础,因为我的专业是物联网工程,这个专业覆盖面之广,简直 ...

  3. OpenGL超级宝典笔记----渲染管线

    在OpenGL中任何事物都在3D空间中,但是屏幕和窗口是一个2D像素阵列,所以OpenGL的大部分工作都是关于如何把3D坐标转变为适应你屏幕的2D像素.3D坐标转为2D坐标的处理过程是由OpenGL的 ...

  4. OpenGL超级宝典笔记----框架搭建

    自从工作后,总是或多或少的会接触到客户端3d图形渲染,正好自己对于3d图形的渲染也很感兴趣,所以最近打算从学习OpenGL的图形API出发,进而了解3d图形的渲染技术.到网上查了一些资料,OpenGL ...

  5. 现代3D图形编程学习-基础简介(3)-什么是opengl (译)

    本书系列 现代3D图形编程学习 OpenGL是什么 在我们编写openGL程序之前,我们首先需要知道什么是OpenGL. 将OpenGL作为一个API OpenGL 通常被认为是应用程序接口(API) ...

  6. OpenGL shader 中关于顶点坐标值的思考

    今天工作中需要做一个事情: 在shader内部做一些空间距离上的计算,而且需要对所有的点进行计算,符合条件的显示,不符合条件的点不显示. 思路很简单,在vertex shader内知道顶点坐标,进行计 ...

  7. OpenGL: 纹理采样 texture sample

    Sampler (GLSL) Sampler通常是在Fragment shader(片元着色器)内定义的,这是一个uniform类型的变量,即处理不同的片元时这个变量是一致不变的.一个sampler和 ...

  8. OpenGL ES 3.0: 图元重启(Primitive restart)

    [TOC] 背景概述 在OpenGL绘制图形时,可能需要绘制多个并不相连的图形.这样的情况下这几个图形没法被当做一个图形来处理.也就需要多次调用 DrawArrays 或 DrawElements. ...

  9. opengl 笔记(2)

    /*- * Opengl Demo Test * * Fredric : 2016-7-10 */ #include <GLUT/GLUT.h> #include <stdlib.h ...

随机推荐

  1. java学习之方法内部类

    *方法内部类 * 在类中的方法内定义一个类 * 注意: * 1 方法内部类只能在类的方法内实例化不可以在此方法外实例化 * 2 .方法内部类对象只能用所在方法体中的变量不能改,jdk1.8可以 * 以 ...

  2. Linux Centos 删除除某(多)个文件之外的所有文件

    好久没有写东西了.通常我们通过rm -rf  *可以直接强制删除当前文件夹里面的所有内容,但是有些时候我们需要保留一些文件,就比如,网站转移更新需要保留程序压缩包等就需要用到在linux centos ...

  3. 统计Oracle一个表空间中各个segment占用的空间大小

    SQL语句参考以下: select owner,segment_name,segment_type,tablespace_name,sum(bytes)/1024/1024/1024 from dba ...

  4. Python之socket_udp

    UDP服务端&客户端编程 ''' udp编程 创建socket对象,socket.SOCK_DGRAM 绑定ip和port,bind()方法 传输数据 1.接收数据,socket.recvfr ...

  5. MyBatis探究-----为实体类Bean取别名,配置typeAliases

    1.单个实体类设置别名 1.1 不使用alias <typeAliases> <!-- typeAlias:为某个java类型起别名 ; type:指定要起别名的类型全类名; 默认别 ...

  6. es7,es8

    ES7新特性 ES7在ES6的基础上添加了三项内容:求幂运算符(**).Array.prototype.includes()方法.函数作用域中严格模式的变更. Array.prototype.incl ...

  7. Linux常用的基础命令总结

    man 查看英文命令帮助   可以看作--help 拷贝目录的命令cp -a  包含所有 ls -a 显示所有文件包括隐藏文件  -ld ls -F 过滤目录文件(给不同类型文件结尾加上不同的符号) ...

  8. 安卓加载网络图片OOM问题解决

    前言:次片是上篇后续出现的问题,在网上找了很多博客,越解决越乱,好在最后看了郭霖的博客给了我一点思路 借鉴:http://blog.csdn.net/guolin_blog/article/detai ...

  9. 多线程校验url的种种。。。

    东西不经常看就容易忘,这两天抽空写了一个补丁库url验证工具,挺曲折的,记录一下需求大概流程如下:转换补丁库为xml,解析xml得到所有url,多线程校验url.就不到100行有效代码,断断续续写了三 ...

  10. Derivative of Softmax Loss Function

    Derivative of Softmax Loss Function A softmax classifier: \[ p_j = \frac{\exp{o_j}}{\sum_{k}\exp{o_k ...