Author Topic: erreur avec SetUniform_1f  (Read 4967 times)

0 Members and 1 Guest are viewing this topic.

mr.haricot

  • Associate
  • Posts: 2
erreur avec SetUniform_1f
« on: February 09, 2011, 07:33:32 PM »
Bonjour à tous,
Je suis en train de faire un petit programme de test sous GeeXLab pour m'entrainer avec GLSL et j'aimerai pouvoir passer un paramètre variable à mon shader en utilisant la fonction SetUniform_1f
Malheureusement cela ne fonctionne pas et le log me donne une erreur sans explication  :(
Voilà mon script:
Code: [Select]
  <script name="init_shader" run_mode="INIT" >
<raw_data><![CDATA[

myShader = HYP_GpuProgram.GetId("LightShader")

gBarId = HYP_Utils.TwBarCreate("TEST")

power = 10.0

HYP_Utils.TwBarAddVarRW_Float(gBarId, "power")


]]></raw_data>
</script>

<script name="update_shader" run_mode="FRAME" >
<raw_data><![CDATA[

HYP_Utils.TwUpdateAllBars();

HYP_GpuProgram.SetUniform_1f(myShader, "power", power)

]]></raw_data>
</script>

Et voilà l'erreur:
Code: [Select]
ERROR: HYP_GpuProgram.SetUniform_1f()
Avez vous une idée de la source de mon problème?

Merci d'avance et merci JeGX pour ce logiciel vraiment pratique!

JeGX

  • Global Moderator
  • Capo Crimine
  • *****
  • Posts: 2385
    • oZone3D.Net
Re: erreur avec SetUniform_1f
« Reply #1 on: February 12, 2011, 11:11:20 AM »
Petite question: utilise-tu un <shader_program> ou un <gpu_program> pour le code source de ton shader?

mr.haricot

  • Associate
  • Posts: 2
Re: erreur avec SetUniform_1f
« Reply #2 on: February 14, 2011, 08:46:02 PM »
aaaaah j'ai trouvé! En effet j'utilise un shader_program et désormais j'ai la bonne syntaxe et cela fonctionne  :thumbup:
Code: [Select]
<script name="initScene" run_mode="INIT" >
<raw_data><![CDATA[

mainCameraId = HYP_Object.GetId("Cam1")
myLightId = HYP_Object.GetId("Light1")
ShaderId = HYP_GPUShader.GetId("LightShader")


gBarId = HYP_Utils.TwBarCreate("Light")
maxD = 10
HYP_Utils.TwBarAddVarRW_Float(gBarId, "maxD")




]]></raw_data>
</script>

<script name="updateScene" run_mode="FRAME" >
<raw_data><![CDATA[
   
HYP_Utils.TwUpdateAllBars();

HYP_GPUShader.SetConstant_1f(ShaderId, "maxD", maxD/1000)

]]></raw_data>
</script>

Merci beaucoup JeGX   :clap: