blender/source/gameengine/Rasterizer/RAS_CameraData.h
Dalai Felinto f12b1790a0 Fix 73841 : Game Engine - Camera Lens Shift
This is essential for video projection, and the alternative until now was to manually change the projection matrix via Python.
( http://www.blender.org/manual/game_engine/camera/introduction.html#camera-lens-shift
- this page will be removed as soon as I commit this)

Also this is working for perspective and orto cameras BUT if the sensor is not AUTO it will only look correct in blenderplayer (this is an unrelated bug, but just in case someone runs into it while testing this, now you know why you got the issue).

Kudos for the BlenderVR project for supporting this feature development.

Differential Revision: https://developer.blender.org/D1379
2015-06-29 10:45:27 -03:00

80 lines
2.3 KiB
C

/*
* ***** BEGIN GPL LICENSE BLOCK *****
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
* All rights reserved.
*
* The Original Code is: all of this file.
*
* Contributor(s): none yet.
*
* ***** END GPL LICENSE BLOCK *****
*/
/** \file RAS_CameraData.h
* \ingroup bgerast
*/
#ifndef __RAS_CAMERADATA_H__
#define __RAS_CAMERADATA_H__
struct RAS_CameraData
{
float m_lens;
float m_scale;
float m_sensor_x;
float m_sensor_y;
short m_sensor_fit;
float m_shift_x;
float m_shift_y;
float m_clipstart;
float m_clipend;
bool m_perspective;
bool m_viewport;
int m_viewportleft;
int m_viewportbottom;
int m_viewportright;
int m_viewporttop;
float m_focallength;
RAS_CameraData(float lens = 35.0, float scale = 6.0, float sensor_x = 32.0, float sensor_y = 18.0, short sensor_fit = 0,
float shift_x = 0.0, float shift_y = 0.0,
float clipstart = 0.1, float clipend = 5000.0, bool perspective = true,
float focallength = 3.0, bool viewport = false, int viewportleft = 0, int viewportbottom = 0,
int viewportright = 0, int viewporttop = 0) :
m_lens(lens),
m_scale(scale),
m_sensor_x(sensor_x),
m_sensor_y(sensor_y),
m_sensor_fit(sensor_fit),
m_shift_x(shift_x),
m_shift_y(shift_y),
m_clipstart(clipstart),
m_clipend(clipend),
m_perspective(perspective),
m_viewport(viewport),
m_viewportleft(viewportleft),
m_viewportbottom(viewportbottom),
m_viewportright(viewportright),
m_viewporttop(viewporttop),
m_focallength(focallength)
{
}
};
#endif /* __RAS_CAMERADATA_H__ */