Welcome to od|forum

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

Juraj

Members
  • Content count

    351
  • Joined

  • Last visited

  • Days Won

    14

Juraj last won the day on July 27

Juraj had the most liked content!

Community Reputation

160 Excellent

5 Followers

About Juraj

  • Rank
    Illusionist

Contact Methods

  • Website URL
    https://sk.linkedin.com/in/juraj-tomori-296a4b116

Personal Information

  • Name
    Juraj
  • Location
    Slovakia
  1. Thanks, we also appreciate your feedback and help during the production
  2. Hi, you can compare angle between two vectors with dot product: the normal vector (v@N) and vector pointing from second point to the first one (v@difference = pt2 - pt1 , (pt1 and pt2 are positions of first and second point) ) and if angle is positive, then the second one is in front of, if negative, the second one is behind the first one. Pseudo code could look like it if (dot(v@N, v@difference) > 0) //second point is first else //first point is first
  3. Hello, now when it is finally published I would like to share you something I was working on during my first semester at the university. It is an university project done at Filmakademie Baden-Wuerttemberg and my role was Technical Director. Enjoy watching with loud sound and in HD Big thanks goes to our cool team, who did their best to finish this piece: Concept/Design: Alex Berweck Technical Directing: Juraj Tomori Film Music: Alexander Wolf David Sounddesign: Robin Harff Animation-­/ VFX-Producing: Vincent Waltan, Tina Vest Modeling: Mitja Öhm Director and Layout: Caroline Kießling FX & Simulation: Aleksej Skrypnik, Justin Braun Production Company: Filmakademie Baden-Württemberg GmbH Pipeline was centered around Houdini and Mantra and we really enjoyed the production of it. I did short breakdowns of a tools and workflows I developed for this project, you can check it here: https://vimeo.com/album/4471569 We used a lot of assets and relied heavily on instancing and I really liked how well Houdini suited into our pipeline, from fast viewport preview of packed disk primitives, to lightweight IFDs being constantly sent to renderfarm Also using digital assets enabled us to efficiently collaborate and transfer setups to the shots. Also big thanks to awesome people here at odforce, it was really great learning/help resource for our project. If you have any questions feel free to ask Juraj
  4. Hi, unfortunately I cannot share the whole setup. I shared as much as I am allowed in the blog post explaining the process of implementing this technique. Hopefully later I will be able to put it here, but not now.
  5. My bad, now I see, that I actually want to disable lighting component (specular) in the OpenGL ROP in the same way as I would do in the viewport when right clicking on lighting in display options toolbar. Edit I figured it out, after assigning a constant shader, then speculars go away, this viewport if too fancy for my needs
  6. Hello, does anybody know how to render flat shaded scene from OpenGL ROP? I need to do some viewport renders and I would like to have the exact look as in the viewport when set to flat shading. OpenGL ROP renders out stuff in smooth shading, even if it is set to flat. Is it a bug, or I am doing something wrong. Thanks, Juraj
  7. car_paint_shader.zip
  8. Hello, I would like to experiment with GLSL shaders in Houdini viewport a bit, but I had very little success yet As a simple thing I would like to create a "matcap" shader, I have this shader in mantra and it works well, but it is quite simple logic in it and I would like to try it out in GLSL as well. I tried two approaches for creating glsl shaders: New Operator Type - SHOP Type - GLSL Shader This approach does not give me any results, the default shader has quite complex code and in the viewport I can see only white color. I tried to modify couple of variables in the code to at least change color from white to red, but unsuccessfully Reference ogl_glsl_shader parameter on a shader pointing to shader.prog file which references to shader.frag and shader.vert This gives me results in the viewport and works quite well, however I do not know how to reference node's parameter value to the GLSL variables. I created those files based on examples in $HFS/houdini/glsl //fragment shader in vec2 matUv; out vec4 color; uniform sampler2D tex; void main() { vec3 base = texture2D( tex, matUv ).rgb; color = vec4( base, 1. ); } First question: how can I reference parameter on the node to the tex variable in opengl? When googling I found some examples which implied that only creating string parameter tex should work, but when running their example files I never got any result in the viewport. Second question: is this the correct workflow? How could I achieve the same thing with New Operator Type workflow? Do you have some simple examples of those nodes with basic shading? E.g. sampling a texture, using constant color... Thanks for any clarification, Juraj
  9. Hello, in Houdini 15 I was using hou.ui.selectFile() dialog to get user's input and I would process it further in python. I used the same function to let user select files or folders, based on the needs of a tool. Now I updated to 16 and the function does not seem to enable user to select a folder, it works only with selecting a file. Does anybody know if there is a way to select a folder in 16? I want to batch process files in a directory and I would like to use file browser dialog to let user set it. In worst case I could use hou.ui.readInput(), and to ask user to enter a path there, but this is super user-unfriendly Thanks, Juraj
  10. Just thinking out loud - color of blackbody radiation can be represented by temperature in Kelvins, or RGB color it emits. So Kelvins to RGB mapping should be straight forward, but backwards it might be tricky, as a RGB value may not be present in blackbody radiation spectrum. If I understand it right, then this plot is showing Kelvin temperatures mapped to RGB colors. So solution that comes to my mind is to find a Kelvin value, which is closest to the given RGB value. One way would be to take an array of Kelvin values converted to RGB values and to find the closest match (based on euclidean distance). Or if array of Kelvin values is not dense enough, you can linearly interpolate between two closest points found. It is not very precise, but should be good enough for some cases. Also, one more fancy thing would be to compute the distance of given RGB value and Kelvin sample in Lab color space, because if I remember correctly, then distances in Lab color space match the best to the perceived difference in colors (Maybe it is some other space, you can look it up)
  11. I also wrote a blog post describing my approach, feel free to check it here.
  12. Hello, thanks! Glad you like it Unfortunately I cannot share scripts because of the university policy, but will try to write a new one save incremental function # splits versioning string into letter and number, e.g. v025 -> ['v','025'] def verSplit(ver): head = ver.rstrip('0123456789') tail = ver[len(head):] return head, tail # save incremental, tries to preserve version formatting def saveInc(): hipname = hou.getenv('HIPNAME') if hipname != 'untitled': v, num = verSplit( hipname.split("_")[-1] ) num = str( int(num) + 1 ).zfill( len(num) ) newName = hipname.split("_") newName[-1] = v + num newNameStr = hou.getenv('HIP') + "/" + "_".join(newName) + "." + hou.getenv('HIPFILE').split(".")[-1] hou.hipFile.save(newNameStr) else: print "cannot increment version name in untitled.hip" Hi, thanks Maybe, but this setup is not very portable and was made for our pipeline. It would require a bit of work to prepare for release and to make it work in most of the environments. LOD switching would not require much of work in this setup. Just computing distance to render camera and then thresholding it into an LOD attribute. But in our case manual decisions proved to be most suitable.
  13. Hi, probably building simple solver could help you. Check out those tutorials, they explain how to build simple and fast fluid solver. If I understood correctly, you need to initialize velocity volume (sampled on faces), then for each simulation step: inject into it velocities from animated geometry, do divergence-free projection, advect velocity by itself and repeat... Probably you might need to enforce boundaries to zero out velocity within geometry.