Page 2 of 3

Re: MH Problems

PostPosted: Sun Sep 27, 2020 3:35 pm
by RobBaer
VapeLord wrote:OpenGL works, otherwise Blender would not start. My graphics card (Radeon HD 7690m xt) supports up to OpenGL 4.1.

Faulty logic. See Aranuvir's step 3 to be sure the required dependencies are really installed.

Re: MH Problems

PostPosted: Sun Sep 27, 2020 4:14 pm
by VapeLord

This is now a comprehensible instruction. It should go into the Wiki.

Unfortunately that did not help either. See file.

(4.34 KiB) Downloaded 87 times

Re: MH Problems

PostPosted: Sun Sep 27, 2020 5:27 pm
by Aranuvir
This is now a comprehensible instruction. It should go into the Wiki.

Feel free to change the wiki to your needs. It's a community project ...

OK the issue is looking different now. Unfortunately there is no version info for OpenGL. To check if Python and OpenGL is working at all you can try this:

1) Run pip again to install glfw.
2) create a file and call it with the following code in it:
Code: Select all
import glfw
from OpenGL.GL import *
import numpy as np
import ctypes
import sys

shaderPath = 'basic.shaders'

def readShaders(path:str):

    shaders = {'vertex': '',
               'fragment': ''}
    mode = None

    with open(path, 'r', encoding='utf-8') as f:

        for line in f:
            if 'VertexShader' in line:
                mode = 'vertex'
            elif 'FragmentShader' in line:
                mode = 'fragment'
            if mode:
                shaders[mode] += line

    return shaders['vertex'], shaders['fragment']

def compileShader(t:int, source:str)->int:
    id = glCreateShader(t)
    glShaderSource(id, source)

    result = glGetShaderiv(id, GL_OBJECT_COMPILE_STATUS)
    if result == GL_FALSE:
        log = glGetShaderInfoLog(id)
        _t = 'vertex' if t == GL_VERTEX_SHADER else 'fragment'
        print('Failed to compile {} shader!\n{}'.format(_t, log))
        return 0
    return id

def createShader(vertexShader: str, fragmentShader: str) -> int:
    program = glCreateProgram()
    vs = compileShader(GL_VERTEX_SHADER, vertexShader)
    fs = compileShader(GL_FRAGMENT_SHADER, fragmentShader)

    glAttachShader(program, vs)
    glAttachShader(program, fs)

    validation = glGetProgramiv(program, GL_VALIDATE_STATUS)
    if validation == GL_FALSE:


    return program

def main():

    if not glfw.init():

    window = glfw.create_window(640, 480, 'Hello World', None, None)

    if not window:


    print(f'Python : {sys.version}')
    print(f'Numpy : {np.version.version}')
    gl_version = glGetString(GL_VERSION)
    print(f'GL Version : {str(gl_version, encoding="utf-8")}')

    positions = np.array([-0.5, -0.5, 0.0,
                           0.5, -0.5, 0.0,
                           0.0,  0.5, 0.0], dtype=np.float32)

    colors = np.array([1.0, 0.0, 0.0, 1.0,
                       0.0, 1.0, 0.0, 1.0,
                       0.0, 0.0, 1.0, 1.0], dtype=np.float32)

    v_source, f_source = readShaders(shaderPath)
    shader = createShader(v_source, f_source)

    v_buffer = glGenBuffers(1)
    glBindBuffer(GL_ARRAY_BUFFER, v_buffer)
    glBufferData(GL_ARRAY_BUFFER, positions.nbytes, positions, GL_STATIC_DRAW)

    attr_pos = glGetAttribLocation(shader, 'a_position')
    glVertexAttribPointer(attr_pos, 3, GL_FLOAT, GL_FALSE, 0, ctypes.c_void_p(0))

    c_buffer = glGenBuffers(1)
    glBindBuffer(GL_ARRAY_BUFFER, c_buffer)
    glBufferData(GL_ARRAY_BUFFER, colors.nbytes, colors, GL_STATIC_DRAW)

    attr_col = glGetAttribLocation(shader, 'a_color')
    glVertexAttribPointer(attr_col, 4, GL_FLOAT, GL_FALSE, 0, ctypes.c_void_p(0))


    while not glfw.window_should_close(window):


        glDrawArrays(GL_TRIANGLES, 0, 3)





if __name__ == '__main__':

3) create a second file and call it basic.shaders (lower case) with the following code:
Code: Select all
#version 330

in vec4 a_position;
in vec4 a_color;

out vec4 v_color;

void main()
    gl_Position = a_position;
    v_color = a_color;

#version 330

in vec4 v_color;

out vec4 out_color;

void main()
    out_color = v_color;

4) Put these files in the same directory and from cmd.exe go to that directory and run python (BTW, admin is not necessary)

If OpenGL in Python is working this should give you a window with a colored triangle and print some information to the console. You can post that information.
All in all I'm not too positive to get your issues fixed. MakeHuman itself doesn't need that much resources. Perhaps you can try to run a tiny Linux in a virtual machine? But your notebook might be too weak for that...

Re: MH Problems

PostPosted: Sun Sep 27, 2020 5:54 pm
by VapeLord
I have tried and this is the result:

(735 Bytes) Downloaded 75 times

Re: MH Problems

PostPosted: Sun Sep 27, 2020 6:17 pm
by RobBaer
This thread started with "I upgraded my driver and MH stopped working". A later caveat was that Blender 2.8 and beyond don't work with the old driver. One has to conclude that the key here is getting the graphic card driver right or switching graphics cards.

I assume that the upgraded graphics card driver was the right one for Windows 7 and not a Windows 10 driver? The graphics card is reportedly: Radeon HD 7690m xt: ... d-7690m-xt I also assume you got the right 32-bit /64-bit for your windows OS? Here is the AMD comment on legacy graphics cards:

I notice that your pip version is out of date. Did you upgrade it as suggested before installing the dependencies?

Also, in working this out, I know you have gone down the road of running MH from source, but if you have not done this before, it may end up causing problems unrelated to your original issue, confounding a solution. [FWIW, I use Anaconda python and MH runs fine on my Windows 10 systems so I'd like to think there is hope]. Unfortunately, Win 7 hit its end-of-life at the beginning of this year.

I don't have Windows 7, but I can assure you that current build version of Windows runs fine with my graphics card on Windows 10. I have a laptop that has Intel graphics as well as Nvidia graphic card. I can change which graphics card to use with MH so it used the Intel graphics card. Can you possible change your computer to use built in Intel graphics rather than you AMD card? Does this get you anywhere?

Re: MH Problems

PostPosted: Sun Sep 27, 2020 6:23 pm
by Aranuvir
Can you run dir in c:\test> ? I assume it's the Windows problem that the real filename is something like basic.shaders.txt ...

Re: MH Problems

PostPosted: Sun Sep 27, 2020 6:40 pm
by VapeLord
The driver is the correct and also the latest version for this card.

By the way, I have zero idea about Python and how it works. So it is not easy for me to follow these steps. So I also have no idea how to update pip to the latest version.

Yes, the laptop has two graphics chipsets, Intel and Radeon. But I can't set that MH should run on Intel. If I deactivate the Radeon, I get problems with Blender.

I'm so confused by the whole story now, because nothing works.


i have tried the basic.shaders as both .py and .txt Both times the same error.

Re: MH Problems

PostPosted: Sun Sep 27, 2020 6:46 pm
by Aranuvir
@Rob: It's definitively the driver. I just try to figure out if the driver has changed the supported OpenGL versions, or PyOpenGL refuses to work with the driver. Upgrading pip will not help. Using Anacond could be helpful in the sense, that does not necessarily provide the latest versions of a library and perhaps older versions of PyOpenGL will work...

Re: MH Problems

PostPosted: Sun Sep 27, 2020 6:50 pm
by Aranuvir
VapeLord wrote:@RobBear
i have tried the basic.shaders as both .py and .txt Both times the same error.

Sigh, rename the file to basic.txt and change the line in the other file from
Code: Select all
shaderPath = 'basic.shaders'
Code: Select all
shaderPath = 'basic.txt'

Re: MH Problems

PostPosted: Sun Sep 27, 2020 7:02 pm
by VapeLord
Ahhh, I see a colorful triangle.