fixed material properties
This commit is contained in:
parent
850ede4b98
commit
245750d56e
5 changed files with 24 additions and 16 deletions
|
@ -254,7 +254,7 @@ function main()
|
|||
clear(CLEAR_DEPTH, 0, 0, 0, 1, 0)
|
||||
renderGizmos()
|
||||
render2D()
|
||||
--renderIcons()
|
||||
renderIcons()
|
||||
renderDebugShapes()
|
||||
renderSelectionOutline(res)
|
||||
end
|
||||
|
|
|
@ -110,8 +110,8 @@ fragment_shader [[
|
|||
if(data.albedo.a < 0.5) discard;
|
||||
#endif
|
||||
data.wpos = v_wpos.xyz;
|
||||
data.roughness = texture(u_roughnessmap, v_uv).r;
|
||||
data.metallic = texture(u_metallicmap, v_uv).r;
|
||||
data.roughness = texture(u_roughnessmap, v_uv).r * u_material_params.x;
|
||||
data.metallic = texture(u_metallicmap, v_uv).r * u_material_params.y;
|
||||
data.normal = normalize(v_normal);
|
||||
data.emission = packEmission(u_material_params.z);
|
||||
}
|
||||
|
|
|
@ -829,7 +829,6 @@ void PropertyGrid::onGUI()
|
|||
i->update();
|
||||
}
|
||||
|
||||
|
||||
if (!m_is_open) return;
|
||||
|
||||
auto& ents = m_editor.getSelectedEntities();
|
||||
|
|
|
@ -475,7 +475,21 @@ void Material::onBeforeReady()
|
|||
}
|
||||
m_texture_count = minimum(m_texture_count, m_shader->m_texture_slot_count);
|
||||
|
||||
|
||||
updateRenderData(true);
|
||||
}
|
||||
|
||||
|
||||
void Material::updateRenderData(bool on_before_ready)
|
||||
{
|
||||
if (!m_shader) return;
|
||||
if (!on_before_ready && !isReady()) return;
|
||||
|
||||
if(m_render_data) {
|
||||
m_renderer.runInRenderThread(m_render_data, [](Renderer& renderer, void* ptr){
|
||||
LUMIX_DELETE(renderer.getAllocator(), (RenderData*)ptr);
|
||||
});
|
||||
}
|
||||
|
||||
m_render_data = LUMIX_NEW(m_renderer.getAllocator(), RenderData);
|
||||
m_render_data->color = m_color;
|
||||
m_render_data->emission = m_emission;
|
||||
|
@ -531,12 +545,6 @@ bool Material::isTextureDefine(u8 define_idx) const
|
|||
}
|
||||
|
||||
|
||||
void Material::setAlphaRef(float value)
|
||||
{
|
||||
m_alpha_ref = value;
|
||||
}
|
||||
|
||||
|
||||
void Material::enableBackfaceCulling(bool enable)
|
||||
{
|
||||
if (enable) {
|
||||
|
|
|
@ -62,15 +62,15 @@ public:
|
|||
RenderData* getRenderData() const { return m_render_data; }
|
||||
|
||||
float getMetallic() const { return m_metallic; }
|
||||
void setMetallic(float value) { m_metallic = value; }
|
||||
void setMetallic(float value) { m_metallic = value; updateRenderData(false); }
|
||||
float getRoughness() const { return m_roughness; }
|
||||
void setRoughness(float value) { m_roughness = value; }
|
||||
void setRoughness(float value) { m_roughness = value; updateRenderData(false); }
|
||||
float getEmission() const { return m_emission; }
|
||||
void setEmission(float value) { m_emission = value; }
|
||||
void setEmission(float value) { m_emission = value; updateRenderData(false); }
|
||||
Vec4 getColor() const { return m_color; }
|
||||
void setColor(const Vec4& color) { m_color = color; }
|
||||
void setColor(const Vec4& color) { m_color = color; updateRenderData(false); }
|
||||
float getAlphaRef() const { return m_alpha_ref; }
|
||||
void setAlphaRef(float value);
|
||||
void setAlphaRef(float value) { m_alpha_ref = value; updateRenderData(false); }
|
||||
u64 getRenderStates() const { return m_render_states; }
|
||||
void enableBackfaceCulling(bool enable);
|
||||
bool isBackfaceCulling() const;
|
||||
|
@ -110,6 +110,7 @@ private:
|
|||
static int LUA_layer(lua_State* L);
|
||||
|
||||
void onBeforeReady() override;
|
||||
void updateRenderData(bool on_before_ready);
|
||||
void unload() override;
|
||||
bool load(u64 size, const u8* mem) override;
|
||||
|
||||
|
|
Loading…
Reference in a new issue