projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
quick backup
[demo]
/
src
/
morph_renderer.cc
diff --git
a/src/morph_renderer.cc
b/src/morph_renderer.cc
index
601c335
..
d076114
100644
(file)
--- a/
src/morph_renderer.cc
+++ b/
src/morph_renderer.cc
@@
-1,8
+1,10
@@
#include "global.h"
#include "morph_renderer.h"
#include "global.h"
#include "morph_renderer.h"
+#include "object.h"
#include "scene.h"
#include "shader.h"
#include "shader_manager.h"
#include "scene.h"
#include "shader.h"
#include "shader_manager.h"
+#include "texture.h"
MorphRenderer::MorphRenderer()
{
MorphRenderer::MorphRenderer()
{
@@
-39,6
+41,11
@@
bool MorphRenderer::create()
mmviewproj_loc = sprog->get_uniform_location("mmviewproj");
mview_loc = sprog->get_uniform_location("mview");
mmviewproj_loc = sprog->get_uniform_location("mmviewproj");
mview_loc = sprog->get_uniform_location("mview");
+ mmod_loc = sprog->get_uniform_location("mmod");
+
+ dstex_loc = sprog->get_uniform_location("dstex");
+ if(dstex_loc != -1)
+ sprog->set_uniformi(dstex_loc, 1);
return true;
}
return true;
}
@@
-51,19
+58,20
@@
void MorphRenderer::draw() const
if(!sprog->link())
return;
if(!sprog->link())
return;
+ if(dskytex) {
+ dskytex->bind(1);
+ }
+
sprog->use();
for(size_t i=0; i<scene->objects.size(); i++) {
sprog->use();
for(size_t i=0; i<scene->objects.size(); i++) {
- draw_object(scene->objects[i]);
- }
-}
-
-void MorphRenderer::draw_object(Object *object) const
-{
- float t = (sin(time_sec) + 1) * 0.5;
+ float t = (sin(time_sec + 7.3 * noise(i * M_PI)) + 1) * 0.5;
+ if(t_loc != -1)
+ sprog->set_uniformf(t_loc, t);
- if(t_loc != -1)
- sprog->set_uniformf(t_loc, t);
+ if(mmod_loc != -1)
+ sprog->set_uniform_matrix(mmod_loc, scene->objects[i]->transform.upper3x3());
- Renderer::draw_object(object);
+ draw_object(scene->objects[i]);
+ }
}
\ No newline at end of file
}
\ No newline at end of file