Skip to content

Commit 2e68182

Browse files
committed
fix texture rendering
1 parent ebfbdc8 commit 2e68182

File tree

3 files changed

+19
-12
lines changed

3 files changed

+19
-12
lines changed

modules/ar/src/panda3d-simulator/vpPanda3DCommonFilters.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@ const char *vpPanda3DLuminanceFilter::FRAGMENT_SHADER = R"shader(
88
99
in vec2 texcoords;
1010
11+
uniform sampler2D p3d_Texture0;
1112
1213
out vec4 p3d_FragData;
13-
uniform sampler2D p3d_Texture0;
1414
1515
void main() {
1616
vec4 v = texture(p3d_Texture0, texcoords);

modules/ar/src/panda3d-simulator/vpPanda3DRGBRenderer.cpp

+16-9
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,14 @@ void main()
152152
vec3 v = normalize(-viewVertex.xyz); // normalized view vector
153153
float nv = max(0.f, dot(n, v));
154154
float roughness2 = pow(p3d_Material.roughness, 2);
155-
p3d_FragData = p3d_LightModel.ambient * p3d_Material.ambient;
155+
156+
#ifdef HAS_TEXTURE
157+
vec4 baseColor = texture(p3d_Texture0, texcoords);
158+
#else
159+
vec4 baseColor = p3d_Material.baseColor;
160+
#endif
161+
//p3d_FragData = vec4(0.0, 0.0, 0.0, 1.f);
162+
p3d_FragData = p3d_LightModel.ambient * baseColor;
156163
157164
158165
for(int i = 0; i < p3d_LightSource.length(); ++i) {
@@ -170,21 +177,16 @@ void main()
170177
171178
vec3 FV = F(F0, vh);
172179
vec3 kd = (1.f - p3d_Material.metallic) * (1.f - FV) * (1.f / M_PI);
173-
#ifdef HAS_TEXTURE
174-
vec4 diffuseColor = texture(p3d_Texture0, texcoords);
175-
#else
176-
vec4 diffuseColor = p3d_Material.baseColor;
177-
#endif
178-
179180
181+
vec4 diffuseColor = baseColor;
180182
181183
#ifdef SPECULAR
182184
vec3 specularColor = vec3(0.f, 0.f, 0.f);
183185
if(nl > 0.f && nv > 0.f) {
184186
float DV = D(roughness2, hn);
185187
float GV = G(hn, nv, nl, vh);
186188
vec3 rs = (DV * GV * FV) / (4.f * nl * nv);
187-
specularColor = rs * p3d_Material.baseColor.rgb;
189+
specularColor = rs * p3d_Material.specular;
188190
}
189191
#else
190192
vec3 specularColor = vec3(0.0, 0.0, 0.0);
@@ -205,6 +207,9 @@ std::string vpPanda3DRGBRenderer::makeFragmentShader(bool hasTexture, bool specu
205207
if (specular) {
206208
ss << "#define SPECULAR 1" << std::endl;
207209
}
210+
else {
211+
ss << "#undef SPECULAR" << std::endl;
212+
}
208213
ss << vpPanda3DRGBRenderer::COOK_TORRANCE_FRAG;
209214
std::cout << ss.str() << std::endl;
210215
return ss.str();
@@ -214,9 +219,10 @@ void vpPanda3DRGBRenderer::addNodeToScene(const NodePath &object)
214219
{
215220
NodePath objectInScene = object.copy_to(m_renderRoot);
216221
objectInScene.set_name(object.get_name());
222+
std::cout << "SHOW SPECULARS = " << m_showSpeculars << std::endl;
217223
PT(Shader) shader = Shader::make(Shader::ShaderLanguage::SL_GLSL,
218224
COOK_TORRANCE_VERT,
219-
makeFragmentShader(false, m_showSpeculars));
225+
makeFragmentShader(true, m_showSpeculars));
220226

221227
objectInScene.set_shader(shader);
222228

@@ -277,6 +283,7 @@ void vpPanda3DRGBRenderer::setupRenderTarget()
277283
m_colorBuffer->set_inverted(gsg->get_copy_texture_inverted());
278284
m_colorTexture = new Texture();
279285
fbp.setup_color_texture(m_colorTexture);
286+
//m_colorTexture->set_format(Texture::Format::F_srgb_alpha);
280287
m_colorBuffer->add_render_texture(m_colorTexture, GraphicsOutput::RenderTextureMode::RTM_copy_ram);
281288
m_colorBuffer->set_clear_color(LColor(0.f));
282289
m_colorBuffer->set_clear_color_active(true);

tutorial/ar/tutorial-panda3d-renderer.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ int main(int argc, const char **argv)
100100
else {
101101
modelPath = "data/deformed_sphere.bam";
102102
}
103-
vpPanda3DRenderParameters renderParams(vpCameraParameters(600, 600, 320, 240), 480, 640, 0.01, 10.0);
103+
vpPanda3DRenderParameters renderParams(vpCameraParameters(300, 300, 160, 120), 240, 320, 0.01, 10.0);
104104
vpPanda3DRendererSet renderer(renderParams);
105105
renderer.setRenderParameters(renderParams);
106106

@@ -144,7 +144,7 @@ int main(int argc, const char **argv)
144144

145145
vpPanda3DAmbientLight alight("Ambient", vpRGBf(0.2));
146146
renderer.addLight(alight);
147-
vpPanda3DPointLight plight("Point", vpRGBf(1.0), vpColVector({ 0.0, 0.2, -0.4 }), vpColVector({ 0.0, 0.0, 1.0 }));
147+
vpPanda3DPointLight plight("Point", vpRGBf(1.0), vpColVector({ 0.0, 0.1, -0.1 }), vpColVector({ 0.0, 0.0, 2.0 }));
148148
renderer.addLight(plight);
149149

150150
rgbRenderer->printStructure();

0 commit comments

Comments
 (0)