Open3D (C++ API)
0.19.0
Toggle main menu visibility
Loading...
Searching...
No Matches
cpp
open3d
visualization
shader
ImageShader.h
Go to the documentation of this file.
1
// ----------------------------------------------------------------------------
2
// - Open3D: www.open3d.org -
3
// ----------------------------------------------------------------------------
4
// Copyright (c) 2018-2024 www.open3d.org
5
// SPDX-License-Identifier: MIT
6
// ----------------------------------------------------------------------------
7
8
#pragma once
9
10
#include "
open3d/geometry/Image.h
"
11
#include "
open3d/visualization/shader/ShaderWrapper.h
"
12
13
namespace
open3d
{
14
namespace
visualization
{
15
16
namespace
glsl
{
17
18
class
ImageShader
:
public
ShaderWrapper
{
19
public
:
20
~ImageShader
()
override
{
Release
(); }
21
22
protected
:
23
ImageShader
(
const
std::string &name) :
ShaderWrapper
(name) {
Compile
(); }
24
25
protected
:
26
bool
Compile
() final;
27
void
Release
() final;
28
bool
BindGeometry
(const
geometry
::
Geometry
&
geometry
,
29
const
RenderOption
&option,
30
const
ViewControl
&view) final;
31
bool
RenderGeometry
(const
geometry
::
Geometry
&
geometry
,
32
const
RenderOption
&option,
33
const
ViewControl
&view) final;
34
void
UnbindGeometry
() final;
35
36
protected:
37
virtual
bool
PrepareRendering
(const
geometry
::
Geometry
&
geometry
,
38
const
RenderOption
&option,
39
const
ViewControl
&view) = 0;
40
virtual
bool
PrepareBinding
(const
geometry
::
Geometry
&
geometry
,
41
const
RenderOption
&option,
42
const
ViewControl
&view,
43
geometry
::
Image
&image) = 0;
44
45
protected:
46
GLuint
vertex_position_
;
47
GLuint
vertex_position_buffer_
;
48
GLuint
vertex_UV_
;
49
GLuint
vertex_UV_buffer_
;
50
GLuint
image_texture_
;
51
GLuint
image_texture_buffer_
;
52
GLuint
vertex_scale_
;
53
54
gl_util
::GLVector3f
vertex_scale_data_
;
55
};
56
57
class
ImageShaderForImage
: public
ImageShader
{
58
public
:
59
ImageShaderForImage
() :
ImageShader
(
"ImageShaderForImage"
) {}
60
61
protected
:
62
virtual
bool
PrepareRendering
(
const
geometry::Geometry
&
geometry
,
63
const
RenderOption
&option,
64
const
ViewControl
&view)
final
;
65
virtual
bool
PrepareBinding
(
const
geometry::Geometry
&
geometry
,
66
const
RenderOption
&option,
67
const
ViewControl
&view,
68
geometry::Image
&render_image)
final
;
69
};
70
71
}
// namespace glsl
72
73
}
// namespace visualization
74
}
// namespace open3d
ShaderWrapper.h
open3d::geometry::Geometry
The base geometry class.
Definition
Geometry.h:18
open3d::geometry::Image
The Image class stores image with customizable width, height, num of channels and bytes per channel.
Definition
Image.h:34
open3d::visualization::RenderOption
Defines rendering options for visualizer.
Definition
RenderOption.h:20
open3d::visualization::ViewControl
View controller for visualizer.
Definition
ViewControl.h:23
open3d::visualization::glsl::ImageShaderForImage::ImageShaderForImage
ImageShaderForImage()
Definition
ImageShader.h:59
open3d::visualization::glsl::ImageShader::Release
void Release() final
Definition
ImageShader.cpp:46
open3d::visualization::glsl::ImageShader::PrepareBinding
virtual bool PrepareBinding(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view, geometry::Image &image)=0
open3d::visualization::glsl::ImageShader::RenderGeometry
bool RenderGeometry(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view) final
Definition
ImageShader.cpp:108
open3d::visualization::glsl::ImageShader::Compile
bool Compile() final
Definition
ImageShader.cpp:34
open3d::visualization::glsl::ImageShader::vertex_UV_
GLuint vertex_UV_
Definition
ImageShader.h:48
open3d::visualization::glsl::ImageShader::ImageShader
ImageShader(const std::string &name)
Definition
ImageShader.h:23
open3d::visualization::glsl::ImageShader::UnbindGeometry
void UnbindGeometry() final
Definition
ImageShader.cpp:134
open3d::visualization::glsl::ImageShader::image_texture_
GLuint image_texture_
Definition
ImageShader.h:50
open3d::visualization::glsl::ImageShader::vertex_scale_data_
gl_util::GLVector3f vertex_scale_data_
Definition
ImageShader.h:54
open3d::visualization::glsl::ImageShader::vertex_scale_
GLuint vertex_scale_
Definition
ImageShader.h:52
open3d::visualization::glsl::ImageShader::vertex_position_buffer_
GLuint vertex_position_buffer_
Definition
ImageShader.h:47
open3d::visualization::glsl::ImageShader::vertex_UV_buffer_
GLuint vertex_UV_buffer_
Definition
ImageShader.h:49
open3d::visualization::glsl::ImageShader::~ImageShader
~ImageShader() override
Definition
ImageShader.h:20
open3d::visualization::glsl::ImageShader::BindGeometry
bool BindGeometry(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view) final
Definition
ImageShader.cpp:51
open3d::visualization::glsl::ImageShader::PrepareRendering
virtual bool PrepareRendering(const geometry::Geometry &geometry, const RenderOption &option, const ViewControl &view)=0
open3d::visualization::glsl::ImageShader::vertex_position_
GLuint vertex_position_
Definition
ImageShader.h:46
open3d::visualization::glsl::ImageShader::image_texture_buffer_
GLuint image_texture_buffer_
Definition
ImageShader.h:51
open3d::visualization::glsl::ShaderWrapper::ShaderWrapper
ShaderWrapper(const ShaderWrapper &)=delete
Image.h
open3d::geometry
Definition
BoundingVolume.cpp:19
open3d::visualization::gl_util
Definition
GLHelper.cpp:15
open3d::visualization::glsl
Definition
GeometryRenderer.cpp:21
open3d::visualization
Definition
ModelIO.h:14
open3d
Definition
PinholeCameraIntrinsic.cpp:16
Generated by
1.17.0