Yunus Balcioglu

animatrix_

About Me

Senior FX Technical Director @ Industrial Light & Magic | Feature film credits include The Lord of the Rings: The Rings of Power, Marvel's Eternals, Star Wars: The Rise of Skywalker, X-Men: Dark Phoenix, X-Men: Apocalypse, Aquaman, Alien: Covenant, Pirates of the Caribbean, Justice League and many m...  more
専門知識
Technical Director
業界:
Film/TV

Connect

LOCATION
Singapore, Singapore
ウェブサイト

Houdini Engine

ADVANCED
プロシージャルワークフロー  | Digital Assets  | Mantra  | Pyro FX  | Fluids  | 説明  | VEX  | Python
INTERMEDIATE
Realtime FX

Availability

Not Specified

チュートリアル

obj-image Advanced
Pragmatic VEX: Volume 1
obj-image Advanced
Pragmatic VEX: Volume 1

My Talks

obj-image HIVE
Face Peeling Using KineFX
obj-image HUG
Retiming Ocean Spectra & The Pragmatic Approach to Solving Technical Problems in VFX

Recent Forum Posts

How can I rotate an object to one of two specific rotations? 2025年6月12日4:44

Hi,

There are many ways to do this. Here is one way using VEX:

float r = rand ( @ptnum );
float angles [ ] = array ( 0, 180 );
float angle = radians ( angles [ r > 0.5 ] );

p@orient = quaternion ( angle, set ( 0,1,0 ) );



The full list of supported instance attributes like orient, pscale, etc. is here:
https://www.sidefx.com/docs/houdini/copy/instanceattrs [www.sidefx.com]
That doc breaks down what each one does when using Copy to Points.

Pragmatic VEX: Volume 1 [4K] [H20] 2025年6月6日4:33

Problems with H19-20 window (maximize, full-screen) 2025年6月3日4:28

Just wanted to share a fullscreen fix I came up with while working on my Houdini Supercharged extension with the overlay network editor. I needed something that works cleanly on all setups — Qt5, Qt6, Intel GPUs, multi-monitor — without the flickering or blank screen some people get when going fullscreen.

The old trick of resizing the window to be slightly bigger than the screen (+1 pixel) works in Qt5 but completely breaks in Qt6, where it clamps the size to screen bounds. Instead of fighting that, I found a cleaner way: just add a 1px invisible margin to the contents. That's enough to stop the compositor from treating it as a "true fullscreen" window, which is what usually causes the flicker or blanking.

I've tested it on both Qt versions and haven’t had any issues since switching to this method. Code is below in case it helps anyone dealing with the same problem.

def fullscreenSession():
    window = hou.qt.mainWindow()

    def customShowFullScreen():
        screen = window.screen().geometry()

        if not hasattr(window, "_orig_geom"):
            window._orig_geom = window.geometry()

        window.hide()
        window.setWindowFlags(QtCore.Qt.FramelessWindowHint)

        window.show()
        QtWidgets.QApplication.processEvents()

        window.move(screen.x(), screen.y())
        window.resize(screen.width(), screen.height())

        # Cleaner alternative to +1 pixel trick
        window.setContentsMargins(0, 0, 1, 1)
        window.setFixedSize(screen.width(), screen.height())

        QtWidgets.QApplication.processEvents()
        window.raise_()
        window.activateWindow()
        window.repaint()

    def customExitFullScreen():
        ORIGINAL_WINDOW_FLAGS = QtCore.Qt.WindowType(167833601)

        window.hide()
        window.setWindowFlags(ORIGINAL_WINDOW_FLAGS)

        if hasattr(window, "_orig_geom"):
            window.setGeometry(window._orig_geom)
            del window._orig_geom

        window.setMinimumSize(0, 0)
        window.setMaximumSize(16777215, 16777215)

        window.show()
        QtWidgets.QApplication.processEvents()
        window.raise_()
        window.activateWindow()

    if window.windowFlags() & QtCore.Qt.FramelessWindowHint:
        customExitFullScreen()
        window.showMaximized()
        hou.ui.setHideAllMinimizedStowbars(False)
    else:
        for pane in hou.ui.panes():
            pane.setShowPaneTabs(False)

        customShowFullScreen()
        hou.ui.setHideAllMinimizedStowbars(True)